Apparently, when using usb-ohci with an interrupt endpoint and you
disconnect the device physically, the interrupt callback is called one
more time before the _disconnect() function is called.

Using a UHCI driver, the 'state' field of the callback is set to -ENOENT.
However, with usb-ohci, this is set to -110 (I think that's -ETIMEDOUT).
I think this should be -ENOENT.  At the very least the UHCI and OHCI
drivers should show the same behavior.

Below is a short trace -- you can see the callback is called before the
disconnect function is called.  I reported this a while back, but there
was some confusion as to the exact scenario in use.  The scenario shown is
this: A device with an interrupt endpoint (which is being used) has been
physically disconnected from a hub attached to an OHCI controller.  At the
time, usb-ohci and usb-storage were loaded, but the device was sitting
idle.

Could somebody please fix this, one way or the other?

USB Mass Storage device found at 3
USB Mass Storage support registered.
usb-storage: USB IRQ recieved for device on host 1
usb-storage: -- IRQ data length is 0
usb-storage: -- IRQ state is -110
usb-storage: -- Interrupt Status 0x0
usb-storage: ERROR: Unwanted interrupt received!
usb.c: USB disconnect on device 3
usb-storage: storage_disconnect() called
usb-storage: -- releasing irq handle
usb-storage: -- usb_release_irq() returned 0

Matt Dharm

-- 
Matthew Dharm                              Home: [EMAIL PROTECTED] 
Engineer, Qualcomm, Inc.                         Work: [EMAIL PROTECTED]

I could always suspend a few hundred accounts and watch what happens.
                                        -- Tanya
User Friendly, 7/31/1998


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to