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

Reply via email to