linux/drivers/usb/dwc3
Udipto Goswami 117b4e96c7 usb: dwc3: gadget: Prevent core from processing stale TRBs
With CPU re-ordering on write instructions, there might
be a chance that the HWO is set before the TRB is updated
with the new mapped buffer address.
And in the case where core is processing a list of TRBs
it is possible that it fetched the TRBs when the HWO is set
but before the buffer address is updated.
Prevent this by adding a memory barrier before the HWO
is updated to ensure that the core always process the
updated TRBs.

Fixes: f6bafc6a1c ("usb: dwc3: convert TRBs into bitshifts")
Cc: stable <stable@vger.kernel.org>
Reviewed-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com>
Signed-off-by: Udipto Goswami <quic_ugoswami@quicinc.com>
Link: https://lore.kernel.org/r/1644207958-18287-1-git-send-email-quic_ugoswami@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-02-08 12:33:59 +01:00
..
core.c usb: dwc3: leave default DMA for PCI devices 2021-11-17 15:03:51 +01:00
core.h usb: dwc3: gadget: Support Multi-Stream Transfer 2021-12-13 14:56:37 +01:00
debug.h usb: dwc3: debugfs: Add and remove endpoint dirs dynamically 2021-06-03 20:28:23 +02:00
debugfs.c USB: dwc3: remove debugfs root dentry storage 2021-06-10 19:57:21 +02:00
drd.c usb: dwc3: drd: use helper to get role-switch-default-mode 2021-07-27 15:58:37 +02:00
dwc3-exynos.c usb: dwc3: exynos: fix incorrect kernel-doc comment syntax 2021-04-02 15:20:54 +02:00
dwc3-haps.c usb: dwc3: haps: Constify the software node 2021-02-04 15:42:06 +01:00
dwc3-imx8mp.c usb: dwc3: imx8mp: request irq after initializing dwc3 2021-08-26 13:10:56 +02:00
dwc3-keystone.c usb: dwc3: fix incorrect kernel-doc comment syntax in files 2021-04-02 15:20:51 +02:00
dwc3-meson-g12a.c usb: dwc3: meson-g12a: fix shared reset control use 2021-11-17 14:29:13 +01:00
dwc3-of-simple.c usb: dwc3: Add driver for Xilinx platforms 2021-03-23 12:48:14 +01:00
dwc3-omap.c usb: dwc3: omap: improve extcon initialization 2021-05-10 15:04:37 +02:00
dwc3-pci.c usb: dwc3: pci: add support for AMD's newer generation platform. 2021-08-26 13:14:21 +02:00
dwc3-qcom.c usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe 2022-01-06 15:26:21 +01:00
dwc3-st.c usb: dwc3: st: fix incorrect kernel-doc comment syntax in file 2021-04-02 15:20:46 +02:00
dwc3-xilinx.c usb: dwc3: xilinx: fix uninitialized return value 2022-01-31 10:24:00 +01:00
ep0.c Merge v5.14-rc3 into usb-next 2021-07-26 11:16:46 +02:00
gadget.c usb: dwc3: gadget: Prevent core from processing stale TRBs 2022-02-08 12:33:59 +01:00
gadget.h usb: dwc3: add cancelled reasons for dwc3 requests 2021-04-02 15:27:36 +02:00
host.c usb: dwc3: Drop unneeded calls to platform_get_resource_byname() 2021-12-21 08:51:57 +01:00
io.h usb: dwc3: fix incorrect kernel-doc comment syntax in files 2021-04-02 15:20:51 +02:00
Kconfig usb: exynos: describe driver in KConfig 2021-10-05 12:55:50 +02:00
Makefile usb: dwc3: Add driver for Xilinx platforms 2021-03-23 12:48:14 +01:00
trace.c usb: dwc3: fix incorrect kernel-doc comment syntax in files 2021-04-02 15:20:51 +02:00
trace.h usb: dwc3: trace: Remove unused fields in dwc3_log_trb 2021-05-27 09:30:01 +02:00
ulpi.c usb: dwc3: ulpi: Fix USB2.0 HS/FS/LS PHY suspend regression 2020-12-28 15:55:44 +01:00