On Thu, 13 May 2004, Greg KH wrote: > I don't object to that, I object to a new function call. If we add > this, then what's the use of usb_unlink_urb() at all? Why would a > driver ever want to call it?
You mean, what's the use of synchronous usb_unlink_urb() -- asynchronous is a separate thing and still necessary; it's used within usb_kill_urb(). > So, why not just fix usb_unlink_urb() to do the same thing that this > usb_kill_urb() call does? That seems much simpler to do, and no drivers > will have to be changed. I thought about doing that. It certainly would simplify hcd_unlink_urb() considerably. Here's two reasons to keep usb_kill_urb apart from usb_unlink_urb: 1. Overloading usb_unlink_urb() to handle both synchronous and asynchronous unlinking was a mistake from the beginning. Now we can finally have two different routines for the two different purposes: usb_unlink_urb() for asynch. and usb_kill_urb() for synchronous unlinks. 2. It's just barely possible, albeit highly unlikely, that some driver somewhere relies on the peculiar semantics of synchronous usb_unlink_urb(). I can't imagine how or why, and if a driver does so it's probably by mistake. But on the off chance, I didn't want to completely replace synch. unlink_urb. On the other hand, if you feel that usb_kill_urb() can take over the job of asynchronous unlinking with no problem, then we can simply add this code to the start of usb_unlink_urb(): /* Replace synchronous unlinks with usb_kill_urb() */ if (!(usb->transfer_flags & URB_ASYNC_UNLINK)) { usb_kill_urb(urb); return 0; } (Notice that the return code is meaningless. That's one of the differences between synchronous unlink and kill_urb.) This also would allow hcd_unlink_urb() to be greatly simplified. Later on, drivers can be changed to call usb_kill_urb() directly. Alan Stern ------------------------------------------------------- This SF.Net email is sponsored by: SourceForge.net Broadband Sign-up now for SourceForge Broadband and get the fastest 6.0/768 connection for only $19.95/mo for the first 3 months! http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel