linux_dsm_epyc7002/drivers/usb/dwc2
John Keeping 37bea42fec usb: dwc2: gadget: Fix kill_all_requests race
When a gadget is disabled, kill_all_requests() can be called
simultaneously from both a user process via dwc2_hsotg_pullup() and from
the interrupt handler if the hardware detects disconnection.

Since we drop the lock in dwc2_hsotg_complete_request() in order to call
the completion handler, this means that the list is modified
concurrently and leads to an infinite loop in kill_all_requests().

Replace the foreach loop with a while-not-empty loop in order to remove
the danger of this concurrent modification.

Note: I observed this with threadirqs, I'm not sure if it can be
triggered without threaded interrupts.

Signed-off-by: John Keeping <john@metanate.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2019-08-09 08:28:29 +03:00
..
core_intr.c usb: dwc2: optionally assert phy reset when waking up 2019-05-03 09:13:47 +03:00
core.c usb: dwc2: use a longer AHB idle timeout in dwc2_core_reset() 2019-07-03 10:59:22 +03:00
core.h USB: dwc2: Don't turn off the usbphy in suspend if wakeup is enabled 2019-06-18 11:58:28 +03:00
debug.h usb: dwc2: Fix kernel doc's warnings. 2018-05-21 10:02:13 +03:00
debugfs.c usb: dwc2: Add core parameter for service interval support 2018-10-02 10:49:26 +03:00
gadget.c usb: dwc2: gadget: Fix kill_all_requests race 2019-08-09 08:28:29 +03:00
hcd_ddma.c usb: dwc2: Modify dwc2_readl/writel functions prototype 2018-07-30 10:39:16 +03:00
hcd_intr.c usb: dwc2: host: Fix wMaxPacketSize handling (fix webcam regression) 2019-06-06 13:51:41 +03:00
hcd_queue.c usb: dwc2: host: Fix wMaxPacketSize handling (fix webcam regression) 2019-06-06 13:51:41 +03:00
hcd.c Revert "usb: dwc2: host: Setting qtd to NULL after freeing it" 2019-06-18 11:58:29 +03:00
hcd.h Revert "usb: dwc2: host: Setting qtd to NULL after freeing it" 2019-06-18 11:58:29 +03:00
hw.h usb: dwc2: Move UTMI_PHY_DATA defines closer 2019-05-03 09:13:48 +03:00
Kconfig usb: remove redundant 'default n' from Kconfig-s 2019-05-21 10:06:22 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
params.c usb: changes for v5.3 merge window 2019-07-01 12:01:33 +02:00
pci.c usb: dwc2: pci: Fix an error code in probe 2018-11-14 11:07:12 +02:00
platform.c usb: changes for v5.3 merge window 2019-07-01 12:01:33 +02:00