linux/drivers/usb/host
Henry Lin 597c56e372 xhci: update bounce buffer with correct sg num
This change fixes a data corruption issue occurred on USB hard disk for
the case that bounce buffer is used during transferring data.

While updating data between sg list and bounce buffer, current
implementation passes mapped sg number (urb->num_mapped_sgs) to
sg_pcopy_from_buffer() and sg_pcopy_to_buffer(). This causes data
not get copied if target buffer is located in the elements after
mapped sg elements. This change passes sg number for full list to
fix issue.

Besides, for copying data from bounce buffer, calling dma_unmap_single()
on the bounce buffer before copying data to sg list can avoid cache issue.

Fixes: f9c589e142 ("xhci: TD-fragment, align the unsplittable case with a bounce buffer")
Cc: <stable@vger.kernel.org> # v4.8+
Signed-off-by: Henry Lin <henryl@nvidia.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-22 14:25:36 +02:00
..
whci USB: host: whci: rename Kbuild file 2019-01-22 09:08:17 +01:00
bcma-hcd.c
ehci-atmel.c
ehci-dbg.c
ehci-exynos.c
ehci-fsl.c drivers: usb :fsl: Remove USB Errata checking code 2019-01-18 10:02:09 +01:00
ehci-fsl.h
ehci-grlib.c
ehci-hcd.c
ehci-hub.c
ehci-mem.c
ehci-mv.c USB: EHCI: ehci-mv: add MODULE_DEVICE_TABLE 2019-01-18 10:07:05 +01:00
ehci-mxc.c
ehci-npcm7xx.c
ehci-omap.c usb: ehci-omap: Fix deferred probe for phy handling 2018-12-17 14:07:59 +01:00
ehci-orion.c usb: ehci-orion: add S2RAM support 2019-01-30 09:22:35 +01:00
ehci-pci.c
ehci-platform.c
ehci-pmcmsp.c
ehci-ppc-of.c
ehci-ps3.c
ehci-q.c
ehci-sched.c
ehci-sh.c
ehci-spear.c
ehci-st.c
ehci-sysfs.c
ehci-tegra.c
ehci-timer.c
ehci-w90x900.c
ehci-xilinx-of.c
ehci.h
fhci-dbg.c
fhci-hcd.c
fhci-hub.c
fhci-mem.c
fhci-q.c
fhci-sched.c usb: host: use usb_endpoint_maxp instead of usb_maxpacket 2019-04-19 14:23:34 +02:00
fhci-tds.c
fhci.h
fotg210-hcd.c
fotg210.h
fsl-mph-dr-of.c drivers: usb :fsl: Remove USB Errata checking code 2019-01-18 10:02:09 +01:00
hwa-hc.c
imx21-dbg.c
imx21-hcd.c
imx21-hcd.h
isp116x-hcd.c
isp116x.h
isp1362-hcd.c
isp1362.h
Kconfig usb: host: xhci: mvebu: add reset on resume quirk 2019-01-30 09:22:35 +01:00
Makefile
max3421-hcd.c
ohci-at91.c USB: host: ohci-at91: add sam9x60-sfr definition for ohci 2019-01-18 09:58:04 +01:00
ohci-da8xx.c usb: ohci-da8xx: drop the vbus GPIO 2019-04-12 19:46:48 +05:30
ohci-dbg.c
ohci-exynos.c
ohci-hcd.c
ohci-hub.c
ohci-mem.c
ohci-nxp.c
ohci-omap.c
ohci-pci.c
ohci-platform.c
ohci-ppc-of.c
ohci-ps3.c
ohci-pxa27x.c
ohci-q.c
ohci-s3c2410.c
ohci-sa1111.c
ohci-sm501.c dma-mapping: remove the DMA_MEMORY_EXCLUSIVE flag 2019-02-20 07:27:00 -07:00
ohci-spear.c
ohci-st.c
ohci-tmio.c dma-mapping: remove the DMA_MEMORY_EXCLUSIVE flag 2019-02-20 07:27:00 -07:00
ohci.h
oxu210hp-hcd.c usb: host: oxu210hp-hcd: remove set but not used variables 'uframes, transfer_buffer_length' 2019-02-19 14:41:38 +01:00
oxu210hp.h
pci-quirks.c
pci-quirks.h
r8a66597-hcd.c usb: r8a66597: Fix a possible concurrency use-after-free bug in r8a66597_endpoint_disable() 2018-12-19 08:13:26 +01:00
r8a66597.h
sl811_cs.c
sl811-hcd.c
sl811.h
ssb-hcd.c
u132-hcd.c Merge 5.1-rc3 into usb-next 2019-04-01 07:42:04 +02:00
uhci-debug.c
uhci-grlib.c
uhci-hcd.c cross-tree: phase out dma_zalloc_coherent() 2019-01-08 07:58:37 -05:00
uhci-hcd.h
uhci-hub.c
uhci-pci.c
uhci-platform.c
uhci-q.c
xhci-dbg.c
xhci-dbgcap.c drivers: Remove explicit invocations of mmiowb() 2019-04-08 12:01:02 +01:00
xhci-dbgcap.h
xhci-dbgtty.c
xhci-debugfs.c
xhci-debugfs.h usb: xhci: remove unused member 'parent' in xhci_regset struct 2019-02-20 20:18:23 +01:00
xhci-ext-caps.c
xhci-ext-caps.h
xhci-histb.c
xhci-hub.c xhci: add port and bus number to port dynamic debugging 2019-04-27 14:53:58 +02:00
xhci-mem.c usb: xhci: fix build warning - missing prototype 2019-02-21 10:54:22 +01:00
xhci-mtk-sch.c
xhci-mtk.c usb: xhci-mtk: get optional clock by devm_clk_get_optional() 2019-04-19 14:23:34 +02:00
xhci-mtk.h
xhci-mvebu.c usb: host: xhci: mvebu: add reset on resume quirk 2019-01-30 09:22:35 +01:00
xhci-mvebu.h usb: host: xhci: mvebu: add reset on resume quirk 2019-01-30 09:22:35 +01:00
xhci-pci.c usb: xhci: Fix for Enabling USB ROLE SWITCH QUIRK on INTEL_SUNRISEPOINT_LP_XHCI 2019-02-21 10:54:22 +01:00
xhci-plat.c usb: host: xhci-plat: get optional clock by devm_clk_get_optional() 2019-04-19 14:24:25 +02:00
xhci-plat.h
xhci-rcar.c usb: host: xhci-rcar: Add XHCI_TRUST_TX_LENGTH quirk 2019-03-19 14:57:31 +01:00
xhci-rcar.h
xhci-ring.c xhci: update bounce buffer with correct sg num 2019-05-22 14:25:36 +02:00
xhci-tegra.c usb: host: xhci-tegra: Add Tegra186 XUSB support 2019-04-16 12:15:53 +02:00
xhci-trace.c
xhci-trace.h usb: xhci: add endpoint context tracing when an endpoint is added 2019-04-27 14:53:58 +02:00
xhci.c usb: xhci: add endpoint context tracing when an endpoint is added 2019-04-27 14:53:58 +02:00
xhci.h xhci: Add tracing for input control context 2019-04-27 14:53:58 +02:00