On Tue, 22 May 2007, Oliver Neukum wrote:

> Am Mittwoch, 16. Mai 2007 17:30 schrieb Alan Stern:
> 
> > This won't build because you forgot to export usb_unanchor_urb().
> > 
> > You could make usb_init_anchor() non-inline.  I'm not sure where 
> > tradeoff lies, but you might be over the limit.
> > 
> > I don't like the way you combined the error handling in usb-skeleton 
> > with the anchor stuff.  Better to keep the two things in separate 
> > patches.
> 
> Hi,
> 
> I hope this version addresses your concerns

Very good.  I did notice two more things:

        Timeouts are specified in jiffies, so your timeout argument
        should be long or unsigned long, not int.

        There's a race if two threads call usb_unanchor_urb() for the
        same URB at the same time.  You need to recheck while holding 
        the anchor's spinlock that urb->anchor is still equal to 
        anchor.  You might also want to add

                WARN_ON(urb->anchor != NULL);

        to usb_anchor_urb(), just as a precaution.

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to