aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/core/urb.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c
index dc838f81742c..16972159a57a 100644
--- a/drivers/usb/core/urb.c
+++ b/drivers/usb/core/urb.c
@@ -420,12 +420,16 @@ int usb_submit_urb(struct urb *urb, int mem_flags)
420 * 420 *
421 * Host Controller Drivers (HCDs) place all the URBs for a particular 421 * Host Controller Drivers (HCDs) place all the URBs for a particular
422 * endpoint in a queue. Normally the queue advances as the controller 422 * endpoint in a queue. Normally the queue advances as the controller
423 * hardware processes each request. But when an URB terminates with any 423 * hardware processes each request. But when an URB terminates with an
424 * fault (such as an error, or being unlinked) its queue stops, at least 424 * error its queue stops, at least until that URB's completion routine
425 * until that URB's completion routine returns. It is guaranteed that 425 * returns. It is guaranteed that the queue will not restart until all
426 * the queue will not restart until all its unlinked URBs have been fully 426 * its unlinked URBs have been fully retired, with their completion
427 * retired, with their completion routines run, even if that's not until 427 * routines run, even if that's not until some time after the original
428 * some time after the original completion handler returns. 428 * completion handler returns. Normally the same behavior and guarantees
429 * apply when an URB terminates because it was unlinked; however if an
430 * URB is unlinked before the hardware has started to execute it, then
431 * its queue is not guaranteed to stop until all the preceding URBs have
432 * completed.
429 * 433 *
430 * This means that USB device drivers can safely build deep queues for 434 * This means that USB device drivers can safely build deep queues for
431 * large or complex transfers, and clean them up reliably after any sort 435 * large or complex transfers, and clean them up reliably after any sort