Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: Problems with Twinhan USB / Problemidentified: SMP



Hi,

> No luck. I had hoped we could at least see it it hangs in the DVB driver
> or somewhere else in the USB stack. If you can produce a trace with
> DVB or USB functions in it then please post.
> 
> 
> Thanks,
> Johannes

Is that better? I thought "Lets try 2.6.9-mm1", maybe the problem
magically disappears, which it does not :-(

But, at least, I see some dvb messages in the "Call trace" section, so
maybe this is more helpful? Dvb-kernel from today's CVS.

eip: e09d7434
kernel BUG at include/asm/spinlock.h:149!
invalid operand: 0000 [#1]
CPU:    1
EIP:    0060:[<c02b843f>]    Not tainted VLI
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010082   (2.6.9-mm1)
eax: 0000000e   ebx: 00000286   ecx: c02f648c   edx: 00000082
esi: d8562024   edi: 00000000   ebp: da8c3e28   esp: da8c3e18
ds: 007b   es: 007b   ss: 0068
Stack: c02c637f e09d7434 d8562000 d8562024 da8c3e3c e09d7434 e0a5a000
d8562000
       d8562648 da8c3e58 e09d77d7 df072520 e0a5a000 00000000 00000000
e0a5a000
       da8c3e70 e09f5174 d8562464 00000000 00000010 e0a76000 da8c3ebc
e09f2bb4
Call Trace:
 [<c0104d9a>] show_stack+0x7a/0x90
 [<c0104f22>] show_registers+0x152/0x1d0
 [<c0105130>] die+0xf0/0x180
 [<c01055e4>] do_invalid_op+0xd4/0xf0
 [<c0104a1d>] error_code+0x2d/0x38
 [<e09d7434>] dibusb_get_free_pid+0x14/0x60 [dvb_dibusb]
 [<e09d77d7>] dibusb_start_feed+0x27/0x90 [dvb_dibusb]
 [<e09f5174>] dmx_section_feed_start_filtering+0xa4/0x160 [dvb_core]
 [<e09f2bb4>] dvb_dmxdev_filter_start+0x2c4/0x3c0 [dvb_core]
 [<e09f3425>] dvb_demux_do_ioctl+0x1a5/0x280 [dvb_core]
 [<e09f183a>] dvb_usercopy+0xaa/0x119 [dvb_core]
 [<e09f351a>] dvb_demux_ioctl+0x1a/0x20 [dvb_core]
 [<c0163c45>] sys_ioctl+0x1d5/0x230
 [<c0103f61>] sysenter_past_esp+0x52/0x71
Code: 00 74 01 fb f3 90 80 3e 00 7e f9 fa eb e8 89 d8 8b 75 fc 8b 5d f8
c9 c3 8b 45 04 c7 04 24 7f 63 2c c0 89 44 24 04 e8 71 16 e6 ff <0f> 0b
95 00 64 5b 2c c0 eb c1 8d b4 26 00 00 00 00 55 89 e5 53


>>EIP; c02b843f <_read_lock_irq+1f/30>   <=====

>>ecx; c02f648c <log_wait+0/10>
>>esi; d8562024 <pg0+18169024/3fc05400>
>>ebp; da8c3e28 <pg0+1a4cae28/3fc05400>
>>esp; da8c3e18 <pg0+1a4cae18/3fc05400>

Trace; c0104d9a <show_stack+7a/90>
Trace; c0104f22 <show_registers+152/1d0>
Trace; c0105130 <die+f0/180>
Trace; c01055e4 <do_invalid_op+d4/f0>
Trace; c0104a1d <error_code+2d/38>
Trace; e09d7434 <pg0+205de434/3fc05400>
Trace; e09d77d7 <pg0+205de7d7/3fc05400>
Trace; e09f5174 <pg0+205fc174/3fc05400>
Trace; e09f2bb4 <pg0+205f9bb4/3fc05400>
Trace; e09f3425 <pg0+205fa425/3fc05400>
Trace; e09f183a <pg0+205f883a/3fc05400>
Trace; e09f351a <pg0+205fa51a/3fc05400>
Trace; c0163c45 <sys_ioctl+1d5/230>
Trace; c0103f61 <sysenter_past_esp+52/71>

This architecture has variable length instructions, decoding before eip
is unreliable, take these instructions with a pinch of salt.

Code;  c02b8414 <_read_lock_irqsave+24/30>
00000000 <_EIP>:
Code;  c02b8414 <_read_lock_irqsave+24/30>
   0:   00 74 01 fb               add    %dh,0xfffffffb(%ecx,%eax,1)
Code;  c02b8418 <_read_lock_irqsave+28/30>
   4:   f3 90                     pause
Code;  c02b841a <_read_lock_irqsave+2a/30>
   6:   80 3e 00                  cmpb   $0x0,(%esi)
Code;  c02b841d <_read_lock_irqsave+2d/30>
   9:   7e f9                     jle    4 <_EIP+0x4>
Code;  c02b841f <_read_lock_irqsave+2f/30>
   b:   fa                        cli
Code;  c02b8420 <_read_lock_irq+0/30>
   c:   eb e8                     jmp    fffffff6 <_EIP+0xfffffff6>
Code;  c02b8422 <_read_lock_irq+2/30>
   e:   89 d8                     mov    %ebx,%eax
Code;  c02b8424 <_read_lock_irq+4/30>
  10:   8b 75 fc                  mov    0xfffffffc(%ebp),%esi
Code;  c02b8427 <_read_lock_irq+7/30>
  13:   8b 5d f8                  mov    0xfffffff8(%ebp),%ebx
Code;  c02b842a <_read_lock_irq+a/30>
  16:   c9                        leave
Code;  c02b842b <_read_lock_irq+b/30>
  17:   c3                        ret
Code;  c02b842c <_read_lock_irq+c/30>
  18:   8b 45 04                  mov    0x4(%ebp),%eax
Code;  c02b842f <_read_lock_irq+f/30>
  1b:   c7 04 24 7f 63 2c c0      movl   $0xc02c637f,(%esp)
Code;  c02b8436 <_read_lock_irq+16/30>
  22:   89 44 24 04               mov    %eax,0x4(%esp)
Code;  c02b843a <_read_lock_irq+1a/30>
  26:   e8 71 16 e6 ff            call   ffe6169c <_EIP+0xffe6169c>

This decode from eip onwards should be reliable

Code;  c02b843f <_read_lock_irq+1f/30>
00000000 <_EIP>:
Code;  c02b843f <_read_lock_irq+1f/30>   <=====
   0:   0f 0b                     ud2a      <=====
Code;  c02b8441 <_read_lock_irq+21/30>
   2:   95                        xchg   %eax,%ebp
Code;  c02b8442 <_read_lock_irq+22/30>
   3:   00 64 5b 2c               add    %ah,0x2c(%ebx,%ebx,2)
Code;  c02b8446 <_read_lock_irq+26/30>
   7:   c0 eb c1                  shr    $0xc1,%bl
Code;  c02b8449 <_read_lock_irq+29/30>
   a:   8d b4 26 00 00 00 00      lea    0x0(%esi),%esi
Code;  c02b8450 <_read_lock_bh+0/40>
  11:   55                        push   %ebp
Code;  c02b8451 <_read_lock_bh+1/40>
  12:   89 e5                     mov    %esp,%ebp
Code;  c02b8453 <_read_lock_bh+3/40>
  14:   53                        push   %ebx

With kind regards, 
Phil

Attachment: signature.asc
Description: This is a digitally signed message part


Home | Main Index | Thread Index