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

Reply via email to