In Linux 2.4.18 with usb-uhci (v1.275), the following code will create a TD with wrong toggle bit:
urb->pipe = rcvbulkpipe( ... ); urb->dev = dev; usb_submit_urb(urb); /* optionally: receive some data and resubmit the urb */ usb_unlink_urb(urb); urb->dev = dev; usb_submit_urb(urb); The submit call before the unlink will toggle the D0/D1 bit in dev->toggle[]. The call after the unlink will then use the toggled bit although the TD of the unlinked URB hasn't been completed successfully. Consequently, the next packet to be received will be lost. (the code may look silly, but it is the equivalent of executing insmod; ... rmmod; insmod) The same happens with uhci (v1.1). Clemens ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel