In Documentation/usb/error-codes.txt it says:

-ENOENT                 URB was synchronously unlinked by usb_unlink_urb

-ECONNRESET             URB was asynchronously unlinked by
usb_unlink_urb

What is the difference between a synchronously and an asynchronously
unlink ?


My understanding from the answer to a previous question is that if you
have the situation where 2 URBS are sent to the HCD:
1) URB  4K   URB_SHORT_NOT_OK
2) URB  8K   URB_SHORT_NOT_OK

If then only 1K of data is sent back from the Device (short packet) then
the HCD would complete the 4K URB with:
  actual_length=1024
  status = -EREMOTEIO

The client driver should then call usb_unlink_urb() for the 8K URB which
would then complete this URB with:
  status = -ECONNRESET

So I assume that would be an example of an asynchronously
unlink...although I'm not entirely sure I understand whats
'asynchronous' about it. 

I don't think I understand what 'synchronous ' & 'asynchronous' mean in
this context.

Thanks for any help
dom

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
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