Alan, David, everyone else who might be able to help, I've just caught an oops that seems to come from the EHCI code. This happened while trying to communicate with my own USB 2.0 device (based on the Cypress EZ-USB FX2), under vanilla 2.4.20. The device was connected through a USB 2.0 hub (NEC chip). This is what the oops looked like, after running through ksymoops:
> hub.c: new USB device 00:09.2-2.3, assigned address 39 > usb_control/bulk_msg: timeout > ehci-hcd.c: 00:09.2 urb_dequeue c7e006c0 qh state 1 > hcd.c: 00:09.2: wait for giveback urb c7e006c0 > hcd.c: giveback urb c7e006c0 status -2 len 0 > usb_control/bulk_msg: timeout > ehci-hcd.c: 00:09.2 urb_dequeue c7e006c0 qh state 1 > hcd.c: 00:09.2: wait for giveback urb c7e006c0 > hcd.c: giveback urb c7e006c0 status -2 len 0 > usb_control/bulk_msg: timeout > ehci-hcd.c: 00:09.2 urb_dequeue c7e006c0 qh state 1 > hcd.c: 00:09.2: wait for giveback urb c7e006c0 > hcd.c: giveback urb c7e006c0 status -2 len 0 > ehci-q.c: 3strikes > ehci-q.c: ep 0-in qtd token 80080148 --> status -71 > hcd.c: giveback urb c7e006c0 status -71 len 0 > ehci-q.c: 3strikes > ehci-q.c: ep 0-in qtd token 00080248 --> status -71 > hcd.c: giveback urb c7e006c0 status -71 len 0 > usb.c: USB device not responding, giving up (error=-71) > ehci-hcd.c: 00:09.2: free_config devnum -1 > ehci-q.c: 3strikes > ehci-q.c: ep 0-out qtd token 00080248 --> status -71 > hcd.c: giveback urb c7e006c0 status -71 len 0 > ehci-q.c: 3strikes > ehci-q.c: ep 0-in qtd token 00080248 --> status -71 > hcd.c: giveback urb c7e006c0 status -71 len 0 > hub.c: usb_hub_port_status (38) failed (err = -71) > hub.c: port 3 of hub 38 not enabled, trying reset again... > ehci-q.c: 3strikes > ehci-q.c: ep 0-out qtd token 00080248 --> status -71 > hcd.c: giveback urb c7e006c0 status -71 len 0 > ehci-q.c: 3strikes > ehci-q.c: ep 0-in qtd token 00080248 --> status -71 > hcd.c: giveback urb c7e006c0 status -71 len 0 > hub.c: usb_hub_port_status (38) failed (err = -71) > hub.c: port 3 of hub 38 not enabled, trying reset again... > ehci-q.c: 3strikes > ehci-q.c: ep 0-out qtd token 00080248 --> status -71 > hcd.c: giveback urb c7e006c0 status -71 len 0 > ehci-q.c: 3strikes > ehci-q.c: ep 0-in qtd token 00080248 --> status -71 > hcd.c: giveback urb c7e006c0 status -71 len 0 > hub.c: usb_hub_port_status (38) failed (err = -71) > hub.c: port 3 of hub 38 not enabled, trying reset again... > ehci-q.c: 3strikes > ehci-q.c: ep 0-out qtd token 00080248 --> status -71 > hcd.c: giveback urb c7e006c0 status -71 len 0 > ehci-q.c: 3strikes > ehci-q.c: ep 1-in qtd token 80018148 --> status -71 > hcd.c: giveback urb e22cf240 status -71 len 0 > hub.c: nonzero status in irq -71 > ehci-sched.c: intr qh ee7ed0c0 no TDs? > ehci-q.c: 3strikes > ehci-q.c: ep 0-in qtd token 00080248 --> status -71 > hcd.c: giveback urb c7e00f40 status -71 len 0 > hub.c: usb_hub_port_status (38) failed (err = -71) > hub.c: port 3 of hub 38 not enabled, trying reset again... > ehci-q.c: 3strikes > ehci-q.c: ep 0-out qtd token 00080248 --> status -71 > hcd.c: giveback urb c7e00f40 status -71 len 0 > ehci-sched.c: intr qh ee7ed0c0 no TDs? > ehci-q.c: 3strikes > ehci-q.c: ep 0-in qtd token 00080248 --> status -71 > hcd.c: giveback urb c7e006c0 status -71 len 0 > hub.c: usb_hub_port_status (38) failed (err = -71) > hub.c: port 3 of hub 38 not enabled, trying reset again... > hub.c: Cannot enable port 3 of hub 38, disabling port. > hub.c: Maybe the USB cable is bad? > ehci-hcd.c: 00:09.2: free_config devnum 0 > ehci-q.c: 3strikes > ehci-q.c: ep 0-out qtd token 00080248 --> status -71 > hcd.c: giveback urb c7e006c0 status -71 len 0 > hub.c: cannot disable port 3 of hub 38 (err = -71) > ehci-q.c: 3strikes > ehci-q.c: ep 0-in qtd token 00080248 --> status -71 > hcd.c: giveback urb c7e006c0 status -71 len 0 > hub.c: usb_hub_port_status (38) failed (err = -71) > ehci-q.c: 3strikes > ehci-q.c: ep 0-in qtd token 00080248 --> status -71 > hcd.c: giveback urb c7e006c0 status -71 len 0 > hub.c: get_hub_status failed > hub.c: port 1, portstatus 100, change 0, 12 Mb/s > ehci-hub.c: GetStatus port 2 status 0x1803 POWER speed=2 CSC CONNECT > hub.c: port 2, portstatus 501, change 1, 480 Mb/s > hub.c: port 2 connection change > hub.c: port 2, portstatus 501, change 1, 480 Mb/s > usb.c: USB disconnect on device 00:09.2-2 address 38 > usb.c: kusbd: /sbin/hotplug remove 38 > ehci-hcd.c: 00:09.2: free_config devnum 38 > > kernel BUG at ehci-q.c:907! > invalid operand: 0000 > CPU: 0 > EIP: 0010:[<f08cccf7>] Tainted: PF > Using defaults from ksymoops -t elf32-i386 -a i386 > EFLAGS: 00213046 > eax: f08d1010 ebx: ef458a00 ecx: 00010011 edx: ee965b00 > esi: ee7ed0c0 edi: 00000011 ebp: 00000044 esp: eeb01ef4 > ds: 0018 es: 0018 ss: 0018 > Process khubd (pid: 874, stackpage=eeb01000) > Stack: ee7ed0c0 00203213 00000011 00000044 f08cebd2 ef458a00 ee7ed0c0 > eeeebec0 > ee7ef000 f08c2180 ffffffff 00000012 eeeebed0 ef458a00 f08bd9ba > ef458a7c > ee7ef000 ee7ef000 c2557a40 f08b41fe ee7ef000 ee7ef150 f08b525d > ee7ef000 > Call Trace: [<f08cebd2>] [<f08c2180>] [<f08bd9ba>] [<f08b41fe>] > [<f08b525d>] > [<f08b79c4>] [<f08b7ced>] [<f08c0280>] [<f08b7e85>] [<c01055e8>] > Code: 0f 0b 8b 03 40 f3 8c f0 66 c7 46 5a 02 00 ff 46 54 89 73 08 > > > >>EIP; f08cccf7 <[ehci-hcd]start_unlink_async+27/150> <===== > > >>eax; f08d1010 <[ehci-hcd].data.end+1069/30b9> > >>ebx; ef458a00 <_end+2f1b51d8/30567838> > >>edx; ee965b00 <_end+2e6c22d8/30567838> > >>esi; ee7ed0c0 <_end+2e549898/30567838> > >>esp; eeb01ef4 <_end+2e85e6cc/30567838> > > Trace; f08cebd2 <[ehci-hcd]ehci_free_config+122/1a0> > Trace; f08c2180 <[usbcore]hub_driver+20/40> > Trace; f08bd9ba <[usbcore]hcd_free_dev+6a/b0> > Trace; f08b41fe <[usbcore]usb_free_dev+1e/40> > Trace; f08b525d <[usbcore]usb_disconnect+11d/130> > Trace; f08b79c4 <[usbcore]usb_hub_port_connect_change+94/280> > Trace; f08b7ced <[usbcore]usb_hub_events+13d/2a0> > Trace; f08c0280 <[usbcore]__kstrtab_usb_hcd_giveback_urb+2040/22a4> > Trace; f08b7e85 <[usbcore]usb_hub_thread+35/c0> > Trace; c01055e8 <kernel_thread+28/40> > > Code; f08cccf7 <[ehci-hcd]start_unlink_async+27/150> > 00000000 <_EIP>: > Code; f08cccf7 <[ehci-hcd]start_unlink_async+27/150> <===== > 0: 0f 0b ud2a <===== > Code; f08cccf9 <[ehci-hcd]start_unlink_async+29/150> > 2: 8b 03 mov (%ebx),%eax > Code; f08cccfb <[ehci-hcd]start_unlink_async+2b/150> > 4: 40 inc %eax > Code; f08cccfc <[ehci-hcd]start_unlink_async+2c/150> > 5: f3 8c f0 repz mov %?,%eax > Code; f08cccff <[ehci-hcd]start_unlink_async+2f/150> > 8: 66 c7 46 5a 02 00 movw $0x2,0x5a(%esi) > Code; f08ccd05 <[ehci-hcd]start_unlink_async+35/150> > e: ff 46 54 incl 0x54(%esi) > Code; f08ccd08 <[ehci-hcd]start_unlink_async+38/150> > 11: 89 73 08 mov %esi,0x8(%ebx) Does this make sense? Andras =========================================================================== Major Andras e-mail: [EMAIL PROTECTED] www: http://andras.webhop.org/ =========================================================================== ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel