WSL2-Linux-Kernel/drivers/usb
Thinh Nguyen 3cb692555a usb: dwc3: gadget: Fix event pending check
commit 7441b27338 upstream.

The DWC3_EVENT_PENDING flag is used to protect against invalid call to
top-half interrupt handler, which can occur when there's a delay in
software detection of the interrupt line deassertion.

However, the clearing of this flag was done prior to unmasking the
interrupt line, creating opportunity where the top-half handler can
come. This breaks the serialization and creates a race between the
top-half and bottom-half handler, resulting in losing synchronization
between the controller and the driver when processing events.

To fix this, make sure the clearing of the DWC3_EVENT_PENDING is done at
the end of the bottom-half handler.

Fixes: d325a1de49 ("usb: dwc3: gadget: Prevent losing events in event cache")
Cc: stable@vger.kernel.org
Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/8670aaf1cf52e7d1e6df2a827af2d77263b93b75.1656380429.git.Thinh.Nguyen@synopsys.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-07-21 21:24:42 +02:00
..
atm usb: atm: cxacru: Fix typo in comment 2021-05-21 20:05:40 +02:00
c67x00 usb/c67x00: Replace tasklet with work 2021-01-26 18:36:37 +01:00
cdns3 usb: cdnsp: Fixed setting last_trb incorrectly 2022-06-22 14:22:03 +02:00
chipidea usb: chipidea: udc: check request status before setting device address 2022-06-29 09:03:27 +02:00
class usb: cdc-wdm: fix reading stuck on device close 2022-05-18 10:26:54 +02:00
common usb: ulpi: Call of_node_put correctly 2022-02-16 12:56:34 +01:00
core USB: hcd-pci: Fully suspend across freeze/thaw cycle 2022-06-14 18:36:21 +02:00
dwc2 usb: dwc2: Fix memory leak in dwc2_hcd_init 2022-06-22 14:22:03 +02:00
dwc3 usb: dwc3: gadget: Fix event pending check 2022-07-21 21:24:42 +02:00
early Revert "usb: early: convert to readl_poll_timeout_atomic()" 2021-12-22 09:32:45 +01:00
gadget USB: gadget: Fix double-free bug in raw_gadget driver 2022-06-29 09:03:27 +02:00
host xhci-pci: Allow host runtime PM as default for Intel Meteor Lake xHCI 2022-06-29 09:03:26 +02:00
image
isp1760 usb: isp1760: Fix out-of-bounds array access 2022-06-09 10:22:27 +02:00
misc usb: misc: fix improper handling of refcount in uss720_probe() 2022-05-09 09:14:28 +02:00
mon
mtu3 usb: mtu3: fix USB 3.0 dual-role-switch from device to host 2022-05-09 09:14:27 +02:00
musb usb: musb: Fix missing of_node_put() in omap2430_probe 2022-06-14 18:36:04 +02:00
phy extcon: Fix extcon_get_extcon_dev() error handling 2022-06-14 18:36:21 +02:00
renesas_usbhs usb: renesas_usbhs: Fix spelling mistake "faile" -> "failed" 2021-08-27 10:29:32 +02:00
roles usb: roles: add helper usb_role_string() 2021-05-27 09:17:18 +02:00
serial USB: serial: ftdi_sio: add Belimo device ids 2022-07-21 21:24:42 +02:00
storage USB: storage: karma: fix rio_karma_init return 2022-06-14 18:36:04 +02:00
typec usb: typec: add missing uevent when partner support PD 2022-07-21 21:24:42 +02:00
usbip usb: usbip: add missing device lock on tweak configuration cmd 2022-06-14 18:36:04 +02:00
Kconfig usb: remove reference to deleted config STB03xxx 2021-08-18 15:32:19 +02:00
Makefile usb: host: remove line for obsolete config USB_HWA_HCD 2021-08-18 15:32:19 +02:00
usb-skeleton.c