[PATCH 0/5] usb: xhci: fix endpoint halt and stall recovery
Sascha Hauer
s.hauer at pengutronix.de
Mon Aug 24 03:14:44 PDT 2026
On Sat, 22 Aug 2026 15:33:59 -0700, Stephano Cetola wrote:
> Recovering from a halted or stalled USB endpoint is broken in the
> XHCI driver in several independent ways. An interrupt endpoint
> transfer never gets a real chance to complete. Its own timeout
> always defeats the hardware's autonomous polling before it can
> succeed. When that or any other transfer times out, the resulting
> cleanup can hit a BUG_ON in the wrong completion state, corrupt a
> pointer used in the recovery command, or leave the endpoint looking
> halted even after recovery actually succeeded.
>
> [...]
Applied, thanks!
[1/5] usb: xhci: tolerate COMP_CTX_STATE in abort_td's final completion check
https://git.pengutronix.de/cgit/barebox/commit/?id=f34158c2f6a7 (link may not be stable)
[2/5] usb: xhci: reset_ep: wait for real completion, not the caller's timeout
https://git.pengutronix.de/cgit/barebox/commit/?id=90794a34e0d5 (link may not be stable)
[3/5] usb: xhci: reset_ep: fix misaligned pointer in Set TR Dequeue Pointer
https://git.pengutronix.de/cgit/barebox/commit/?id=f4b7aebfe14d (link may not be stable)
[4/5] usb: xhci: xhci_bulk_tx: re-fetch ep_ctx after resetting a halted endpoint
https://git.pengutronix.de/cgit/barebox/commit/?id=b5bd959ef11e (link may not be stable)
[5/5] usb: xhci: wait a real interval for interrupt endpoint transfers
https://git.pengutronix.de/cgit/barebox/commit/?id=c9c00f47f571 (link may not be stable)
Best regards,
--
Sascha Hauer <s.hauer at pengutronix.de>
More information about the barebox
mailing list