linux/drivers/usb
Mathias Nyman 13b82b7463 xhci: Fix immediate data transfer if buffer is already DMA mapped
xhci immediate data transfer (IDT) support in 5.2-rc1 caused regression
on various Samsung Exynos boards with ASIX USB 2.0 ethernet dongle.

If the transfer buffer in the URB is already DMA mapped then IDT should
not be used. urb->transfer_dma will already contain a valid dma address,
and there is no guarantee the data in urb->transfer_buffer is valid.

The IDT support patch used urb->transfer_dma as a temporary storage,
copying data from urb->transfer_buffer into it.

Issue was solved by preventing IDT if transfer buffer is already dma
mapped, and by not using urb->transfer_dma as temporary storage.

Fixes: 33e39350eb ("usb: xhci: add Immediate Data Transfer support")
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
CC: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-22 14:25:37 +02:00
..
atm USB: add missing SPDX lines to Kconfig and Makefiles 2019-01-22 09:08:17 +01:00
c67x00
chipidea usb: chipidea: msm: get optional clock by devm_clk_get_optional() 2019-04-19 14:24:26 +02:00
class USB: cdc-acm: clean up throttle handling 2019-04-29 16:14:41 +02:00
common usb: introduce usb_ep_type_string() function 2019-05-03 09:13:48 +03:00
core USB: Add LPM quirk for Surface Dock GigE adapter 2019-05-21 10:08:56 +02:00
dwc2 dwc2: gadget: Fix completed transfer size calculation in DDMA 2019-05-03 09:13:49 +03:00
dwc3 drm pull request for 5.2 2019-05-08 21:35:19 -07:00
early drivers: Remove explicit invocations of mmiowb() 2019-04-08 12:01:02 +01:00
gadget usb: gadget: atmel: tie wake lock to running clock 2019-05-03 09:13:49 +03:00
host xhci: Fix immediate data transfer if buffer is already DMA mapped 2019-05-22 14:25:37 +02:00
image USB: add missing SPDX lines to Kconfig and Makefiles 2019-01-22 09:08:17 +01:00
isp1760 usb: isp1760-hcd: Fix fall-through annotations 2019-05-01 18:13:52 +02:00
misc USB: rio500: simplify locking 2019-05-21 10:11:14 +02:00
mon USB: add missing SPDX lines to Kconfig and Makefiles 2019-01-22 09:08:17 +01:00
mtu3 usb: mtu3: fix up undefined reference to usb_debug_root 2019-05-21 10:08:56 +02:00
musb usb: musb: dsps: Use dev_get_drvdata() 2019-04-30 17:55:08 +02:00
phy usb: gadget: fsl: fix link error against usb-gadget module 2019-05-03 09:13:47 +03:00
renesas_usbhs USB: renesas_usbhs: fix spelling mistake "doens't" -> "doesn't" 2019-02-19 14:41:38 +01:00
roles usb: roles: Find the muxes by also matching against the device node 2019-02-14 10:52:25 +01:00
serial USB: serial: f81232: implement break control 2019-05-03 09:19:55 +02:00
storage treewide: prefix header search paths with $(srctree)/ 2019-05-18 11:49:57 +09:00
typec usb: typec: ucsi: ccg: fix missing unlock on error in ccg_cmd_write_flash_row() 2019-04-29 14:25:12 +02:00
usbip usbip: usbip_host: fix BUG: sleeping function called from invalid context 2019-05-21 10:08:56 +02:00
wusbcore wusb: Remove unnecessary static function ckhdid_printf 2019-03-01 20:53:41 +01:00
Kconfig USB: add missing SPDX lines to Kconfig and Makefiles 2019-01-22 09:08:17 +01:00
Makefile usb: roles: Add Intel xHCI USB role switch driver 2018-03-22 13:49:27 +01:00
usb-skeleton.c usb: usb-skeleton: use irqsave() in USB's complete callback 2018-06-28 19:36:06 +09:00