linux/drivers/usb/dwc3
Wesley Cheng f09ddcfcb8 usb: dwc3: gadget: Prevent EP queuing while stopping transfers
In the situations where the DWC3 gadget stops active transfers, once
calling the dwc3_gadget_giveback(), there is a chance where a function
driver can queue a new USB request in between the time where the dwc3
lock has been released and re-aquired.  This occurs after we've already
issued an ENDXFER command.  When the stop active transfers continues
to remove USB requests from all dep lists, the newly added request will
also be removed, while controller still has an active TRB for it.
This can lead to the controller accessing an unmapped memory address.

Fix this by ensuring parameters to prevent EP queuing are set before
calling the stop active transfers API.

Fixes: ae7e86108b ("usb: dwc3: Stop active transfers before halting the controller")
Signed-off-by: Wesley Cheng <wcheng@codeaurora.org>
Link: https://lore.kernel.org/r/1615507142-23097-1-git-send-email-wcheng@codeaurora.org
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-03-17 21:45:20 +01:00
..
Kconfig usb: dwc3: add imx8mp dwc3 glue layer driver 2021-01-04 16:38:08 +01:00
Makefile usb: dwc3: add imx8mp dwc3 glue layer driver 2021-01-04 16:38:08 +01:00
core.c Merge 5.11-rc7 into usb-next 2021-02-08 09:09:27 +01:00
core.h usb: dwc3: gadget: Track connected SSP rate and lane count 2021-02-06 14:21:21 +01:00
debug.h usb: dwc3: debug: fix checkpatch warning 2020-10-02 09:43:35 +03:00
debugfs.c usb: dwc3: debugfs: do not queue work if try to change mode on non-drd 2020-10-02 09:57:42 +03:00
drd.c usb: dwc3: drd: Improve dwc3_get_extcon() style 2020-12-28 15:51:40 +01:00
dwc3-exynos.c Revert "usb: dwc3: exynos: Add support for Exynos5422 suspend clk" 2020-06-24 09:52:23 +03:00
dwc3-haps.c usb: dwc3: haps: Constify the software node 2021-02-04 15:42:06 +01:00
dwc3-imx8mp.c usb: dwc3: add imx8mp dwc3 glue layer driver 2021-01-04 16:38:08 +01:00
dwc3-keystone.c usb: dwc3: keystone: Simplify with dev_err_probe() 2021-01-12 12:50:45 +01:00
dwc3-meson-g12a.c usb: dwc3: meson-g12a: disable clk on error handling path in probe 2020-12-28 15:45:14 +01:00
dwc3-of-simple.c usb: dwc3: of-simple: Add compatible string for Intel Keem Bay platform 2020-10-02 13:29:13 +03:00
dwc3-omap.c usb: dwc3: Replace HTTP links with HTTPS ones 2020-07-15 16:33:51 +02:00
dwc3-pci.c usb: dwc3: pci: add support for the Intel Alder Lake-P 2021-01-15 16:06:43 +01:00
dwc3-qcom.c usb: dwc3: qcom: Add missing DWC3 OF node refcount decrement 2021-03-10 09:36:13 +01:00
dwc3-st.c of: Remove of_dev_{get,put}() 2021-02-12 19:23:39 -06:00
ep0.c usb: dwc3: ep0: Fix delay status handling 2020-10-27 11:33:53 +02:00
gadget.c usb: dwc3: gadget: Prevent EP queuing while stopping transfers 2021-03-17 21:45:20 +01:00
gadget.h usb: dwc3: allocate gadget structure dynamically 2020-10-02 09:57:42 +03:00
host.c usb: dwc3: host: Use software node API with the properties 2021-02-05 10:08:19 +01:00
io.h usb: dwc3: Replace HTTP links with HTTPS ones 2020-07-15 16:33:51 +02:00
trace.c usb: dwc3: Replace HTTP links with HTTPS ones 2020-07-15 16:33:51 +02:00
trace.h usb: dwc3: trace: fix checkpatch warnings 2020-10-02 09:43:35 +03:00
ulpi.c usb: dwc3: ulpi: Fix USB2.0 HS/FS/LS PHY suspend regression 2020-12-28 15:55:44 +01:00