[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