Am Sonntag, 10. Juni 2007 schrieb Alan Stern:
> On Sun, 10 Jun 2007, Oliver Neukum wrote:
>
> > Am Sonntag, 10. Juni 2007 schrieb Greg KH:
> > > > Yes, it could be done that way, I think. It'll take more work than a
> > > > simple search-and-replace. The trickiest part is how to unlink an URB
> > > > after it has been submitted but before it has been handed to the HCD...
> > >
> > > We allow that today? How, multiple threads doing the submit and then
> > > unlink call? That's looney. We should not worry about that until after
> >
> > Isn't that exactly what a resubmission in the completion handler is?
>
> No. It may be similar in some vague sense but it's not the same thing
> at all. What Greg and I are talking about is this:
>
> CPU 0 CPU 1
> ----- -----
> call usb_submit_urb
> call usb_unlink_urb
> call hcd->driver->urb_enqueue
>
> What you're talking about is this:
>
> CPU 0
> -----
> call usb_hcd_giveback_urb
> call urb->complete
> call usb_submit_urb
>
> It doesn't involve multiple threads or unlinking.
But suppose you want to unlink an URB that is resubmitted in its completion
handler. I see no way to avoid hitting that window. Unless you want to force
drivers to use synchronization. At least usb_kill_urb() has to always work.
Regards
Oliver
-------------------------------------------------------------------------
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/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel