Hi Alan, I'm finally revisiting the issue with active transfers when a device disconnects. I'm trying to refresh my memory of the issue. On Thu, Oct 18, 2012 at 03:54:06PM -0400, Alan Stern wrote: > Unfortunately the trace isn't termendously helpful. It shows a bunch > of reads with a few writes sprinkled among them. Then for no apparent > reason, in the middle of a read the device was disconnected. > > Oddly, the bulk-IN URB that was in progress when the disconnect > occurred did not complete immediately with an error. Instead it timed > out after 30 seconds and was cancelled. Sarah, I thought you had fixed > that? I don't remember what the fix for this was supposed to be. I currently assume that when a USB device is logically disconnected by the USB core, either the driver's disconnect function is called and it should cancel all outstanding URBs, or the core goes and cancels all active URBs that are in the host queue. Basically, I assume it's the USB core's job to flush out any URBs before destroying the xHCI endpoint rings when the struct usb_device is deallocated. ISTR that this assumption was wrong, but I don't remember why. I vaguely recall that the fix was for the xHCI driver to not accept URBs when it knows a particular device is disconnected. Is that correct? Sarah Sharp -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html