Greg & everyone: While implementing the suggestion to replace synchronous usb_unlink_urb() with usb_kill_urb(), a question arose concerning the value stored in urb->status. Right now the status is -ECONNRESET for asynch and -ENOENT for synch unlinks. Should I preserve this behavior? Or is now a good time to do away with -ENOENT, on the grounds that a driver shouldn't care how an URB was unlinked? Making this change would require updates to about a dozen drivers, in most cases simply because they check for -ENOENT but not -ECONNRESET. (In fact, making them check for both codes wouldn't hurt, even if we keep both codes.) Or I could even go through _all_ the drivers and take out the checks for -ENOENT entirely. Maybe this shouldn't be changed until we start 2.7.
Oliver's suggestion to wake up the queues only when URB_REJECT is set is a very good one. It will reduce the number of unneeded wakeups to the point where I think we can have a single wait_queue_head for all synchronous unlinks rather than an individual queue header stored in each URB. That will please the people who disapprove of adding extra fields to struct urb. Does anyone object to this? 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