kernel_samsung_a53x/drivers/usb
Guenter Roeck 3a584ed810 usb: ohci: Prevent missed ohci interrupts
commit fe81f354841641c7f71163b84912b25c169ed8ec upstream.

Testing ohci functionality with qemu's pci-ohci emulation often results
in ohci interface stalls, resulting in hung task timeouts.

The problem is caused by lost interrupts between the emulation and the
Linux kernel code. Additional interrupts raised while the ohci interrupt
handler in Linux is running and before the handler clears the interrupt
status are not handled. The fix for a similar problem in ehci suggests
that the problem is likely caused by edge-triggered MSI interrupts. See
commit 0b60557230ad ("usb: ehci: Prevent missed ehci interrupts with
edge-triggered MSI") for details.

Ensure that the ohci interrupt code handles all pending interrupts before
returning to solve the problem.

Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: David Laight <David.Laight@aculab.com>
Cc: stable@vger.kernel.org
Fixes: 306c54d0edb6 ("usb: hcd: Try MSI interrupts on PCI devices")
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Alan Stern <stern@rowland.harvard.edu>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Link: https://lore.kernel.org/r/20240429154010.1507366-1-linux@roeck-us.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-19 11:32:48 +01:00
..
atm Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
c67x00 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cdns3 usb: cdns3: fix memory double free when handle zero packet 2024-11-18 22:25:39 +01:00
chipidea usb: chipidea: wait controller resume finished for wakeup irq 2024-11-18 12:12:46 +01:00
class Revert "usb: cdc-wdm: close race between read and workqueue" 2024-11-19 11:32:22 +01:00
common Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
core usb: Fix regression caused by invalid ep0 maxpacket in virtual SuperSpeed device 2024-11-19 11:32:48 +01:00
dwc2 usb: dwc2: host: Fix dereference issue in DDMA completion flow. 2024-11-19 11:32:23 +01:00
dwc3 usb: dwc: ep0: Update request status in dwc3_ep0_stall_restart 2024-11-18 12:12:46 +01:00
early Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gadget usb: udc: remove warning when queue disabled ep 2024-11-19 09:22:43 +01:00
host usb: ohci: Prevent missed ohci interrupts 2024-11-19 11:32:48 +01:00
image Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
isp1760 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
misc Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mon usb: mon: Fix atomicity violation in mon_bin_vma_fault 2024-11-18 12:12:47 +01:00
mtu3 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
musb usb: musb: Modify the "HWVers" register address 2024-11-08 11:25:49 +01:00
notify Import A536BXXSAEXE1 2024-06-15 16:07:28 -03:00
notify_lsi Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
phy Revert "usb: phy: generic: Get the vbus supply" 2024-11-19 09:22:49 +01:00
renesas_usbhs Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
roles usb: roles: don't get/set_role() when usb_role_switch is unregistered 2024-11-18 22:25:39 +01:00
serial USB: serial: option: add Telit FN920C04 rmnet compositions 2024-11-19 11:32:22 +01:00
storage USB: usb-storage: Prevent divide-by-0 error in isd200_ata_command 2024-11-19 09:22:39 +01:00
typec usb: typec: ucsi: Fix connector check on init 2024-11-19 11:32:48 +01:00
usbip kcov: Remove kcov include from sched.h and move it to its users. 2024-11-19 11:32:46 +01:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig.variant1 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.variant1 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
usb-skeleton.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00