diff options
author | Alan Stern <stern@rowland.harvard.edu> | 2009-10-27 15:26:50 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-12-11 11:55:18 -0800 |
commit | ed1db3ada189c9af592c4d2971b22b482b68aafe (patch) | |
tree | aa7d98261986c4558a7c38b9047ea9e02342b227 /drivers/usb/core/message.c | |
parent | 253e05724f9230910344357b1142ad8642ff9f5a (diff) |
USB: fix a bug in the scatter-gather library
This patch (as1298) fixes a bug in the new scatter-gather URB
facility. If an URB uses a scatterlist then it should not have the
URB_NO_INTERRUPT flag set; otherwise the system won't be notified when
the transfer completes.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: David Vrabel <david.vrabel@csr.com>
CC: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/core/message.c')
-rw-r--r-- | drivers/usb/core/message.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c index 8d874cad658..adb9c8ee0c1 100644 --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c @@ -403,7 +403,7 @@ int usb_sg_init(struct usb_sg_request *io, struct usb_device *dev, if (!io->urbs) goto nomem; - urb_flags = URB_NO_INTERRUPT; + urb_flags = 0; if (dma) urb_flags |= URB_NO_TRANSFER_DMA_MAP; if (usb_pipein(pipe)) @@ -435,6 +435,7 @@ int usb_sg_init(struct usb_sg_request *io, struct usb_device *dev, io->urbs[0]->num_sgs = io->entries; io->entries = 1; } else { + urb_flags |= URB_NO_INTERRUPT; for_each_sg(sg, sg, io->entries, i) { unsigned len; |