Alan Stern wrote:

The problem we face is that the device's hardware may not be able to set
the endpoint's Halt feature until after the last ACK, even if the firmware
requested the feature be set before the ACK was sent.  (That sort of thing
can happen if the device doesn't use a simple uniprocessor to handle all
its chores.)  It's a race, and in all likelihood the device has no way to
guarantee that things will work out correctly.

It can happen even with a uniprocessor; the race relates to how the FIFO is managed for the OUT endpoint. Normally it's left ready to accept more data, so that firmware delays in decyphering the request won't slow down the typical case (no STALL). So the first data packet could have been ACKed even before the storage request has been interpreted.

- Dave




------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to