We don't support sg for isoc transfers, enforce this.

Signed-off-by: Hans de Goede <hdego...@redhat.com>
Acked-by: Alan Stern <st...@rowland.harvard.edu>
---
 drivers/usb/core/hcd.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index 140d3e1..f546102 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1389,7 +1389,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,
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to