Greetings,
I (and several others) have stumbled across a bug in the usb-uhci driver,
introduced in 2.4.10. It seems to center around ISO transfers (so a lot of
users of my PWC driver encounter it). It causes a rather nasty hang, but one
user managed to get me a good trace, which I�m printing below:
Unable to handle kernel paging request at virtual address ffffffdc
*pde = 00003063
Oops: 0000
CPU: 0
EIP: 0010:[<c020e141>]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010207
eax: 00000000 ebx: d241c4c8 eax: 00000003 edx: c0367dc0
esi: 00000000 edi: d241c2c0 ebp: e7b5a0c0 esp: c02b5ed0
ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 0, stackpage=c02b5000)
Stack: d241c4c8 d241c2c0 00000000 e7eb2580 00000010 da36bf60 00000000
00000001
c020e2c9 e7eb2580 d241c2c0 00000000 d241c4c8 e7eb2580 00000000
00000000
00000001 c011dee6 00000001 00000000 c020e55a e7eb2580 d241c2c8
e7eaba00
Call trace: [<c020e2c9>] [<c011dee6>] [<c020e55a>] [<c0108401>] [<c01085e6>]
[<c01051b0>] [<c01051b0>] [<c010a6e8>] [<c01051b0>] [<c01051b0>]
[<c01051dc>]
[<c0105242>] [<c0105000>] [<c0105043>]
Code: 8b 46 dc 8d 6e d8 a9 00 00 80 00 74 39 25 ff ff 7f ff 89 46
>>EIP; c020e141 <process_iso+65/184> <=====
Trace; c020e2c9 <process_urb+69/22c>
Trace; c011dee6 <timer_bh+36/2cc>
Trace; c020e55a <uhci_interrupt+ce/130>
Trace; c0108401 <handle_IRQ_event+4d/78>
Trace; c01085e6 <do_IRQ+a6/ec>
Trace; c01051b0 <default_idle+0/34>
Trace; c01051b0 <default_idle+0/34>
Trace; c010a6e8 <call_do_IRQ+5/d>
Trace; c01051b0 <default_idle+0/34>
Trace; c01051b0 <default_idle+0/34>
Trace; c01051dc <default_idle+2c/34>
Trace; c0105242 <cpu_idle+3e/54>
Trace; c0105000 <_stext+0/0>
Trace; c0105043 <rest_init+43/44>
Code; c020e141 <process_iso+65/184>
00000000 <_EIP>:
Code; c020e141 <process_iso+65/184> <=====
0: 8b 46 dc mov 0xffffffdc(%esi),%eax <=====
Code; c020e144 <process_iso+68/184>
3: 8d 6e d8 lea 0xffffffd8(%esi),%ebp
Code; c020e147 <process_iso+6b/184>
6: a9 00 00 80 00 test $0x800000,%eax
Code; c020e14c <process_iso+70/184>
b: 74 39 je 46 <_EIP+0x46> c020e187
<process_iso+ab/184>
Code; c020e14e <process_iso+72/184>
d: 25 ff ff 7f ff and $0xff7fffff,%eax
Code; c020e153 <process_iso+77/184>
12: 89 46 00 mov %eax,0x0(%esi)
<0> kernel panic: Aiee, killing interrupt handler!
83 warnings and 3 errors issued. Results may not be reliable.
The offending instruction is in usb-uhci.c, line 2548:
if (is_td_active(desc)) {
is_td_active() is actually a #define, testing a bit in desc->hw.td.status,
which appearantly is a NULL pointer. Other reports were not so clear, but
point at the same function (4 calls below do_IRQ, same code bytes).
The uhci module (which I normally use) works fine; 2.4.9 also works fine. So
I doubt it�s my driver [*]. The crash occurs instantly when trying to use the
webcam.
I�ll try and investigate myself, but I�m a little short on time. I hope
someone with more knowledge of the usb-uhci module can find the bug soon.
- Nemosoft
[*] Nevertheless, I always seem to manage to trigger bugs in other people�s
code :))))
-----------------------------------------------------------------------------
Try SorceryNet! One of the best IRC-networks around! irc.sorcery.net:9000
URL: never IRC: nemosoft IscaBBS (bbs.isca.uiowa.edu): Nemosoft
>> Never mind the daylight <<
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel