linux/drivers/usb/host
Faisal Hassan 075919f6df xhci: Fix Link TRB DMA in command ring stopped completion event
During the aborting of a command, the software receives a command
completion event for the command ring stopped, with the TRB pointing
to the next TRB after the aborted command.

If the command we abort is located just before the Link TRB in the
command ring, then during the 'command ring stopped' completion event,
the xHC gives the Link TRB in the event's cmd DMA, which causes a
mismatch in handling command completion event.

To address this situation, move the 'command ring stopped' completion
event check slightly earlier, since the specific command it stopped
on isn't of significant concern.

Fixes: 7f84eef0da ("USB: xhci: No-op command queueing and irq handler.")
Cc: stable@vger.kernel.org
Signed-off-by: Faisal Hassan <quic_faisalh@quicinc.com>
Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20241022155631.1185-1-quic_faisalh@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-10-29 04:23:59 +01:00
..
bcma-hcd.c USB: bcma: Make GPIO explicitly optional 2022-11-08 16:39:56 +01:00
ehci-atmel.c usb: host: Do not check for 0 return after calling platform_get_irq() 2023-08-04 14:46:53 +02:00
ehci-brcm.c usb: ehci-brcm: fix module autoloading 2024-08-25 13:45:56 +02:00
ehci-dbg.c USB: Use EHCI control transfer pid macros instead of constant values. 2024-03-26 10:43:35 +01:00
ehci-exynos.c usb: ehci-exynos: Simplify with scoped for each OF child loop 2024-08-22 17:17:29 +08:00
ehci-fsl.c usb: ehci-fsl: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:10 +02:00
ehci-fsl.h
ehci-grlib.c usb: ehci-grlib: Convert to platform remove callback returning void 2023-05-28 12:36:28 +01:00
ehci-hcd.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ehci-hub.c usb: ehci: add workaround for chipidea PORTSC.PEC bug 2023-08-09 14:16:06 +02:00
ehci-mem.c
ehci-mv.c usb: ehci-mv: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:11 +02:00
ehci-npcm7xx.c usb: ehci-npcm7xx: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:10 +02:00
ehci-omap.c usb: ehci-omap: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:10 +02:00
ehci-orion.c usb: host: Add ac5 to EHCI Orion 2024-01-27 16:53:51 -08:00
ehci-pci.c USB: Extend pci resume function to handle PM events 2023-05-13 17:33:18 +09:00
ehci-platform.c usb: ehci-platform: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:09 +02:00
ehci-ppc-of.c usb: ehci-ppc-of: Convert to platform remove callback returning void 2023-05-28 12:36:29 +01:00
ehci-ps3.c
ehci-q.c USB: Use EHCI control transfer pid macros instead of constant values. 2024-03-26 10:43:35 +01:00
ehci-sched.c usb: host: ehci-sched: try to turn on io watchdog as long as periodic_count > 0 2023-08-12 10:03:22 +02:00
ehci-sh.c usb: host: Do not check for 0 return after calling platform_get_irq() 2023-08-04 14:46:53 +02:00
ehci-spear.c usb: ehci-spear: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:09 +02:00
ehci-st.c usb: ehci-st: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:11 +02:00
ehci-sysfs.c
ehci-timer.c
ehci-xilinx-of.c usb: ehci-xilinx-of: Convert to platform remove callback returning void 2023-05-28 12:36:29 +01:00
ehci.h USB: Use EHCI control transfer pid macros instead of constant values. 2024-03-26 10:43:35 +01:00
fhci-dbg.c
fhci-hcd.c usb: Explicitly include correct DT includes 2023-07-25 18:20:02 +02:00
fhci-hub.c USB: FHCI: Switch to GPIO descriptors 2022-09-01 16:08:29 +02:00
fhci-mem.c
fhci-q.c
fhci-sched.c
fhci-tds.c
fhci.h USB: FHCI: Switch to GPIO descriptors 2022-09-01 16:08:29 +02:00
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 usb: isp116x-hcd: Convert to platform remove callback returning void 2023-05-28 12:36:29 +01:00
isp116x.h
isp1362-hcd.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
isp1362.h
Kconfig xhci-pci: Make xhci-pci-renesas a proper modular driver 2024-08-07 12:51:38 +02:00
Makefile usb: host: u132-hcd: Delete driver 2023-03-21 14:06:11 +01:00
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 usb: octeon-hcd: Convert to platform remove callback returning void 2023-05-28 12:36:30 +01:00
octeon-hcd.h staging: octeon-usb: move driver out of staging 2022-06-21 16:43:37 +02:00
ohci-at91.c usb: ohci-at91: Fix the unhandle interrupt when resume 2023-07-30 13:26:09 +02:00
ohci-da8xx.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ohci-dbg.c
ohci-exynos.c usb: ohci-exynos: Simplify with scoped for each OF child loop 2024-08-22 17:17:35 +08:00
ohci-hcd.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ohci-hub.c
ohci-mem.c
ohci-nxp.c usb: ohci-nxp: Use helper function devm_clk_get_enabled() 2024-09-03 09:53:34 +02:00
ohci-omap.c usb: ohci-omap: Convert to platform remove callback returning void 2023-05-28 12:36:30 +01:00
ohci-pci.c USB: Extend pci resume function to handle PM events 2023-05-13 17:33:18 +09:00
ohci-platform.c usb: host: ohci-platform: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:09 +02:00
ohci-ppc-of.c USB: ohci-ppc-of: Drop ohci-littledian compatible 2024-07-31 10:41:25 +02:00
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 usb: ohci-s3c2410: Convert to platform remove callback returning void 2023-05-28 12:36:31 +01:00
ohci-sa1111.c ARM: sa1100: remove unused board files 2023-01-12 10:53:12 +01:00
ohci-sm501.c USB: ohci-sm501: remove unnecessary check of mem 2023-08-12 10:03:16 +02:00
ohci-spear.c usb: ohci-spear: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:10 +02:00
ohci-st.c usb: ohci-st: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:11 +02:00
ohci.h usb: Annotate struct urb_priv with __counted_by 2023-10-02 09:48:52 -07:00
oxu210hp-hcd.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
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 usb: r8a66597-hcd: make read-only const arrays static 2024-09-13 07:41:27 +02:00
r8a66597.h
sl811_cs.c
sl811-hcd.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
sl811.h
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 usb: uhci: handle HAS_IOPORT dependencies 2023-05-29 15:29:03 +01:00
uhci-hcd.h usb: uhci: handle HAS_IOPORT dependencies 2023-05-29 15:29:03 +01:00
uhci-hub.c
uhci-pci.c Merge 6.4-rc4 into usb-next 2023-05-28 15:25:53 +01:00
uhci-platform.c usb: uhci-platform: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:11 +02:00
uhci-q.c
xen-hcd.c xen: make remove callback of xen driver void returned 2022-12-15 16:06:10 +01:00
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: Fix STALL transfer event handling 2024-09-05 16:39:21 +02:00
xhci-dbgcap.h xhci: dbc: honor usb transfer size boundaries. 2024-10-17 08:45:36 +02:00
xhci-dbgtty.c xhci: dbc: honor usb transfer size boundaries. 2024-10-17 08:45:36 +02:00
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: Add USB4 tunnel detection for USB3 devices on Intel hosts 2024-09-03 09:54:39 +02:00
xhci-histb.c xhci: get rid of XHCI_PLAT quirk that used to prevent MSI setup 2023-06-13 11:34:50 +02:00
xhci-hub.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
xhci-mem.c xhci: support setting interrupt moderation IMOD for secondary interrupters 2024-09-05 16:39:23 +02: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 usb: host: xhci: mvebu: Iterate over array indexes instead of using pointer math 2023-02-06 13:46:42 +01:00
xhci-mvebu.h
xhci-pci-renesas.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
xhci-pci.c xhci: Use pm_runtime_get to prevent RPM on unsupported systems 2024-10-29 04:23:36 +01:00
xhci-pci.h xhci-pci: Make xhci-pci-renesas a proper modular driver 2024-08-07 12:51:38 +02:00
xhci-plat.c usb: host: xhci-plat: Parse xhci-missing_cas_quirk and apply quirk 2024-09-11 15:37:52 +02: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: remove XHCI_TRUST_TX_LENGTH quirk 2024-05-01 08:47:14 +02:00
xhci-ring.c xhci: Fix Link TRB DMA in command ring stopped completion event 2024-10-29 04:23:59 +01:00
xhci-rzv2m.c usb: xhci-plat: Don't include xhci.h 2024-04-23 16:25:29 -07:00
xhci-rzv2m.h xhci: host: Add Renesas RZ/V2M SoC support 2023-01-25 15:48:17 +01:00
xhci-tegra.c xhci: tegra: fix checked USB2 port number 2024-10-16 10:25:43 +02:00
xhci-trace.c xhci: Move functions to setup msi to xhci-pci 2023-03-23 17:25:22 +01:00
xhci-trace.h xhci: show usb device name in xhci urb tracing 2024-06-27 16:08:05 +02:00
xhci.c xhci: support setting interrupt moderation IMOD for secondary interrupters 2024-09-05 16:39:23 +02:00
xhci.h xhci: Fix incorrect stream context type macro 2024-10-17 08:45:36 +02:00