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
