On Wed, 3 Mar 2004, David Brownell wrote: > > You're saying that this code at the end of hcd_submit_urb() is wrong: > > > > status = hcd->driver->urb_enqueue (hcd, urb, mem_flags); > > done: > > Yes -- right here should be something like > > if (status == -ENOMSG) { /* unlink-during-submit */ > giveback(urb); > status = 0; > } else > > ... or something very similar. Assuming all the HCDs return ENOMSG > (or whatever never-given-to-drivers code is chosen) for this case.
This should happen no matter what value status is, so long as it's non-zero. And by the same reasoning: The URB has already been linked, the HCD was unable to accept it, so it must be sent to giveback and submit_urb must return 0. We can still use -ENOMSG for this unusual case, but it won't matter since the value won't get sent back to the submitter. Alan Stern ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel