> >> int usb_revoke_urb_sync(struct urb *urb); > >> int usb_revoke_urb_async(struct urb *urb); > > > >Are you trying to split up the current usb_unlink_urb() case? Do you > >think this is really necessary?
I'm not sure why it'd be necessary. The API might be a smidgeon cleaner (I prefer to avoid flags that create API modes, or changing them after requests are under way) but I don't think "necessary" applies here ... those calls would just be wrappers around existing functionality. > Much better. The networking drivers have a need to unlink > the same urb both asynchronously and synchronously. > Furthermore it allows functionality to be shifted from the HCDs > to usbcore. That's already done -- the "hcd" framework (part of usbcore that exists only for the HC drivers) handles all the synchronization. > As a completion handler may be running even after a synchronous > unlink has returned, almost all drivers have a race on disconnect. The "hcd" framework also ensures that the completion handler has been called by the time a synchronous unlink returns, so that race (which I'd call a HC driver bug) doesn't exist. > >> void usb_wait_completion(struct urb *urb); I still haven't seen a description of what this is supposed to do, and would want to see one before a discussion about whether the API should be included ... - Dave _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
