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

Reply via email to