aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/core/urb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/core/urb.c')
-rw-r--r--drivers/usb/core/urb.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c
index 2532a0917f8c..a760e46871c5 100644
--- a/drivers/usb/core/urb.c
+++ b/drivers/usb/core/urb.c
@@ -333,9 +333,12 @@ int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
333 is_out = usb_endpoint_dir_out(&ep->desc); 333 is_out = usb_endpoint_dir_out(&ep->desc);
334 } 334 }
335 335
336 /* Cache the direction for later use */ 336 /* Clear the internal flags and cache the direction for later use */
337 urb->transfer_flags = (urb->transfer_flags & ~URB_DIR_MASK) | 337 urb->transfer_flags &= ~(URB_DIR_MASK | URB_DMA_MAP_SINGLE |
338 (is_out ? URB_DIR_OUT : URB_DIR_IN); 338 URB_DMA_MAP_PAGE | URB_DMA_MAP_SG | URB_MAP_LOCAL |
339 URB_SETUP_MAP_SINGLE | URB_SETUP_MAP_LOCAL |
340 URB_DMA_SG_COMBINED);
341 urb->transfer_flags |= (is_out ? URB_DIR_OUT : URB_DIR_IN);
339 342
340 if (xfertype != USB_ENDPOINT_XFER_CONTROL && 343 if (xfertype != USB_ENDPOINT_XFER_CONTROL &&
341 dev->state < USB_STATE_CONFIGURED) 344 dev->state < USB_STATE_CONFIGURED)