[alsa-devel] usb midi disconnect -> kernel oops

Takashi Iwai tiwai at suse.de
Wed Apr 4 16:51:50 CEST 2007


At Tue, 3 Apr 2007 21:05:06 +0400,
Dmitry Baikov wrote:
> 
> On 4/3/07, Takashi Iwai <tiwai at suse.de> wrote:
> > I guess you're looking at a different place.  As you can find the
> > place matching with "89" (marked in the middle) somewhere in
> > clear_subscriber_list().  Check the byte matter matching with
> > disassembler code.  Also, you can get source code lines via -l option
> > of objdump, which helps pretty much.
> 
> Got it :) Kernel dumps the code around the faulty address, not from.
> That's explains that "middle of instruction".
> 
> I found why I never had this behaviour before:
> I changed port creation code from snd_seq_create_simple_port to
> create_port and incorrectly used return value (0) as a port number.
> And I had port 0 before.
> So, then I subscribed and later deleted this port several times.

So this bug doesn't happen with the non-modified code, or does it?

> As for objdump, -l option did not give anything (seems, I had stripped
> debug info).
> And now with debug alsa build, I cannot reproduce the bug.

Oh yeah, it makes our lives harder ;)


Takashi

> old results of objdump: (Faulty address is 4ad9)
> 
>     4aa0:       e8 89 fd ff ff          call   482e <unsubscribe_port>
>     4aa5:       85 ff                   test   %edi,%edi
>     4aa7:       75 10                   jne    4ab9 <clear_subscriber_list+0x80>
>     4aa9:       ff 4e 60                decl   0x60(%esi)
>     4aac:       0f 94 c0                sete   %al
>     4aaf:       84 c0                   test   %al,%al
>     4ab1:       0f 84 82 00 00 00       je     4b39
> <clear_subscriber_list+0x100>
>     4ab7:       eb 79                   jmp    4b32 <clear_subscriber_list+0xf9>
>     4ab9:       83 7c 24 30 00          cmpl   $0x0,0x30(%esp)
>     4abe:       75 2a                   jne    4aea <clear_subscriber_list+0xb1>
>     4ac0:       8d af b4 00 00 00       lea    0xb4(%edi),%ebp
>     4ac6:       8d 9f c4 00 00 00       lea    0xc4(%edi),%ebx
>     4acc:       89 d8                   mov    %ebx,%eax
>     4ace:       e8 fc ff ff ff          call   4acf <clear_subscriber_list+0x96>
>     4ad3:       8d 4e 58                lea    0x58(%esi),%ecx
>     4ad6:       8b 56 58                mov    0x58(%esi),%edx
>     4ad9:       8b 41 04                mov    0x4(%ecx),%eax
>     4adc:       89 42 04                mov    %eax,0x4(%edx)
>     4adf:       89 10                   mov    %edx,(%eax)
>     4ae1:       c7 46 58 00 01 10 00    movl   $0x100100,0x58(%esi)
>     4ae8:       eb 22                   jmp    4b0c <clear_subscriber_list+0xd3>
>     4aea:       8d 6f 68                lea    0x68(%edi),%ebp
>     4aed:       8d 5f 78                lea    0x78(%edi),%ebx
>     4af0:       89 d8                   mov    %ebx,%eax
>     4af2:       e8 fc ff ff ff          call   4af3 <clear_subscriber_list+0xba>
>     4af7:       8d 4e 50                lea    0x50(%esi),%ecx
>     4afa:       8b 56 50                mov    0x50(%esi),%edx
>     4afd:       8b 41 04                mov    0x4(%ecx),%eax
>     4b00:       89 42 04                mov    %eax,0x4(%edx)
>     4b03:       89 10                   mov    %edx,(%eax)
>     4b05:       c7 46 50 00 01 10 00    movl   $0x100100,0x50(%esi)
>     4b0c:       c7 41 04 00 02 20 00    movl   $0x200200,0x4(%ecx)
>     4b13:       89 d8                   mov    %ebx,%eax
>     4b15:       e8 fc ff ff ff          call   4b16 <clear_subscriber_list+0xdd>
> 


More information about the Alsa-devel mailing list