Even though you've already updated the driver, you might like to get some 
answers to your questions.

On Tue, 18 Jan 2005, Thomas Winischhofer wrote:

> Is -ECONNRESET only set if the URB is (forcefully) unlinked (by me)?

The status will be set to -ECONNRESET whenever the URB is terminated by
someone (it doesn't have to be you) calling usb_unlink_urb, provided the
URB_ASYNC_UNLINK flag is set.  (That last requirement, along with the
URB_ASYNC_UNLINK flag itself, will be phased out of the kernel before
long.)  Other methods of termination will result in a different status
value.

> Will the completion handler be called under ALL circumstances? In this 
> case I could avoid the (own) timeout loop and just wait (forever) for 
> the completion handler to clear the BUSY bit. Would that be correct?

The completion handler will be called when the URB completes, no matter
what, guaranteed.  Yes, you can just wait for the handler to clear the
BUSY bit.  Do remember that the handler won't run until the URB completes,
which might not be for a very long time...  If you don't implement a
timeout, the typical sorts of things that might cause an otherwise hung-up
URB to complete are: your driver is unloaded, the device is unplugged, the
host controller driver is unloaded.  (Shutting down the system does not in
itself cause URBs to complete.)

Alan Stern



-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to