original_kernel/drivers/usb/host
Guenter Roeck fe81f35484 usb: ohci: Prevent missed ohci interrupts
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 0b60557230 ("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: 306c54d0ed ("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-04-30 18:04:40 +02:00
..
Kconfig
Makefile
bcma-hcd.c
ehci-atmel.c
ehci-brcm.c
ehci-dbg.c
ehci-exynos.c
ehci-fsl.c
ehci-fsl.h
ehci-grlib.c
ehci-hcd.c
ehci-hub.c
ehci-mem.c
ehci-mv.c
ehci-npcm7xx.c
ehci-omap.c
ehci-orion.c usb: host: Add ac5 to EHCI Orion 2024-01-27 16:53:51 -08:00
ehci-pci.c
ehci-platform.c
ehci-ppc-of.c
ehci-ps3.c
ehci-q.c
ehci-sched.c
ehci-sh.c
ehci-spear.c
ehci-st.c
ehci-sysfs.c
ehci-timer.c
ehci-xilinx-of.c
ehci.h
fhci-dbg.c
fhci-hcd.c
fhci-hub.c
fhci-mem.c
fhci-q.c
fhci-sched.c
fhci-tds.c
fhci.h
fsl-mph-dr-of.c usb: fsl-mph-dr-of: mark fsl_usb2_mpc5121_init() static 2023-12-10 17:21:43 -08:00
isp116x-hcd.c
isp116x.h
isp1362-hcd.c
isp1362.h
max3421-hcd.c usb: host: max3421-hcd: Replace snprintf() with the safer scnprintf() variant 2023-12-15 13:55:30 +01:00
octeon-hcd.c
octeon-hcd.h
ohci-at91.c
ohci-da8xx.c
ohci-dbg.c
ohci-exynos.c
ohci-hcd.c usb: ohci: Prevent missed ohci interrupts 2024-04-30 18:04:40 +02:00
ohci-hub.c
ohci-mem.c
ohci-nxp.c
ohci-omap.c
ohci-pci.c
ohci-platform.c
ohci-ppc-of.c
ohci-ps3.c
ohci-pxa27x.c usb: ohci-pxa27x: Remove unused of_gpio.h 2024-03-07 20:58:25 +00:00
ohci-q.c
ohci-s3c2410.c
ohci-sa1111.c
ohci-sm501.c
ohci-spear.c
ohci-st.c
ohci.h usb: Annotate struct urb_priv with __counted_by 2023-10-02 09:48:52 -07:00
oxu210hp-hcd.c
pci-quirks.c usb: pci-quirks: handle HAS_IOPORT dependency for UHCI handoff 2023-10-02 16:19:13 +02:00
pci-quirks.h usb: pci-quirks: handle HAS_IOPORT dependency for AMD quirk 2023-10-02 16:19:12 +02:00
r8a66597-hcd.c
r8a66597.h
sl811-hcd.c usb: sl811-hcd: only defined function checkdone if QUIRK2 is defined 2024-03-07 20:58:18 +00:00
sl811.h
sl811_cs.c
ssb-hcd.c
uhci-debug.c
uhci-grlib.c usb: uhci-grlib: Explicitly include linux/platform_device.h 2024-02-19 09:23:00 +01:00
uhci-hcd.c
uhci-hcd.h
uhci-hub.c
uhci-pci.c
uhci-platform.c
uhci-q.c
xen-hcd.c
xhci-caps.h XHCI: Separate PORT and CAPs macros into dedicated file 2024-01-27 17:39:09 -08:00
xhci-dbg.c
xhci-dbgcap.c xhci: dbc: poll at different rate depending on data transfer activity 2024-03-02 20:25:28 +01:00
xhci-dbgcap.h xhci: dbc: poll at different rate depending on data transfer activity 2024-03-02 20:25:28 +01:00
xhci-dbgtty.c
xhci-debugfs.c xhci: add support to allocate several interrupters 2024-01-04 16:08:13 +01:00
xhci-debugfs.h
xhci-ext-caps.c
xhci-ext-caps.h
xhci-histb.c
xhci-hub.c xhci: save slot ID in struct 'xhci_port' 2024-03-02 20:25:27 +01:00
xhci-mem.c usb: xhci: utilize 'xhci_free_segments_for_ring()' for freeing segments 2024-03-02 20:25:27 +01:00
xhci-mtk-sch.c xhci: replace real & fake port with pointer to root hub port 2024-03-02 20:25:27 +01:00
xhci-mtk.c usb: xhci-mtk: fix a short packet issue of gen1 isoc-in transfer 2024-01-04 16:05:50 +01:00
xhci-mtk.h usb: xhci-mtk: fix a short packet issue of gen1 isoc-in transfer 2024-01-04 16:05:50 +01:00
xhci-mvebu.c
xhci-mvebu.h
xhci-pci-renesas.c
xhci-pci.c xhci: Allow RPM on the USB controller (1022:43f7) by default 2024-03-05 13:53:30 +00:00
xhci-pci.h
xhci-plat.c usb: host: xhci-plat: Add support for XHCI_SG_TRB_CACHE_SIZE_QUIRK 2024-01-27 16:28:23 -08:00
xhci-plat.h usb: xhci-plat: Don't include xhci.h 2024-04-23 16:25:29 -07:00
xhci-port.h XHCI: Separate PORT and CAPs macros into dedicated file 2024-01-27 17:39:09 -08:00
xhci-rcar.c
xhci-ring.c usb: xhci: correct return value in case of STS_HCE 2024-04-04 14:54:53 +02:00
xhci-rzv2m.c usb: xhci-plat: Don't include xhci.h 2024-04-23 16:25:29 -07:00
xhci-rzv2m.h
xhci-tegra.c
xhci-trace.c
xhci-trace.h xhci: Fix root hub port null pointer dereference in xhci tracepoints 2024-04-04 14:54:54 +02:00
xhci.c usb: xhci: Add error handling in xhci_map_urb_for_dma 2024-03-02 20:25:28 +01:00
xhci.h xhci: save slot ID in struct 'xhci_port' 2024-03-02 20:25:27 +01:00