diff options
author | Hans de Goede <hdegoede@redhat.com> | 2012-07-09 15:57:00 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-07-09 09:46:50 -0700 |
commit | fe2072cc1768b0f979195acf19b8ccd381e541c3 (patch) | |
tree | e859371690893eb021d904b58f9ec8c7e8239e43 | |
parent | c5cf9212a368d88fe1e25797699b167f6daa64a5 (diff) | |
download | op-kernel-dev-fe2072cc1768b0f979195acf19b8ccd381e541c3.zip op-kernel-dev-fe2072cc1768b0f979195acf19b8ccd381e541c3.tar.gz |
usb/hcd: Ensure scatter-gather is not used for isoc transfers
We don't support sg for isoc transfers, enforce this.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/usb/core/hcd.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c index 190b1ec7..bc84106 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c @@ -1398,7 +1398,15 @@ int usb_hcd_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb, && !(urb->transfer_flags & URB_NO_TRANSFER_DMA_MAP)) { if (hcd->self.uses_dma) { if (urb->num_sgs) { - int n = dma_map_sg( + int n; + + /* We don't support sg for isoc transfers ! */ + if (usb_endpoint_xfer_isoc(&urb->ep->desc)) { + WARN_ON(1); + return -EINVAL; + } + + n = dma_map_sg( hcd->self.controller, urb->sg, urb->num_sgs, |