All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] hw/usb/hcd-xhci: two isoch fixes with qtests
@ 2026-09-21  5:46 Junjie Cao
  2026-09-21  5:46 ` [PATCH 1/4] hw/usb/hcd-xhci: fix interval alignment after MFINDEX passes 2^32 Junjie Cao
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Junjie Cao @ 2026-09-21  5:46 UTC (permalink / raw)
  To: qemu-devel
  Cc: Thomas Huth, Philippe Mathieu-Daudé, Peter Maydell,
	Gerd Hoffmann, Fabiano Rosas, Laurent Vivier, Paolo Bonzini,
	Nicholas Piggin, Feifan Qian

Two xHCI bugs from the issue tracker, each with a qtest.

The interval mask is 32 bits wide, so once MFINDEX passes 2^32 isoch TDs
with SIA are no longer held until the next interval boundary. This
matches #3973: onset after 6.2 days of uptime, cleared by re-binding the
controller in the guest.

A guest can declare a non-isoch endpoint as isoch and hit an assertion
when the device NAKs (#3886). #544 is the same assertion, reached from
the kick timer as in patch 4. Its reproducer from 2021 no longer
triggers on master, so it is not tagged.

Both tests fail on master (c1c18d1e64). Tested on x86_64 with an
ASan/UBSan build: usb-hcd-xhci-test, usb-hcd-ehci-test and
usb-hcd-uhci-test pass. The new tests skip on ppc64.

Junjie Cao (4):
  hw/usb/hcd-xhci: fix interval alignment after MFINDEX passes 2^32
  hw/usb/hcd-xhci: don't assert on NAK when retrying an isoch transfer
  tests/qtest/usb-hcd-xhci: test isoch pacing with MFINDEX above 2^32
  tests/qtest/usb-hcd-xhci: test isoch endpoint type mismatch

 hw/usb/hcd-xhci.c               |  33 +---
 tests/qtest/usb-hcd-xhci-test.c | 318 ++++++++++++++++++++++++++++++++
 2 files changed, 328 insertions(+), 23 deletions(-)


base-commit: c1c18d1e640b64292859ce9f30f3c344edfb0294
-- 
2.43.0



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-09-22 11:29 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-21  5:46 [PATCH 0/4] hw/usb/hcd-xhci: two isoch fixes with qtests Junjie Cao
2026-09-21  5:46 ` [PATCH 1/4] hw/usb/hcd-xhci: fix interval alignment after MFINDEX passes 2^32 Junjie Cao
2026-09-22  4:56   ` Philippe Mathieu-Daudé
2026-09-21  5:46 ` [PATCH 2/4] hw/usb/hcd-xhci: don't assert on NAK when retrying an isoch transfer Junjie Cao
2026-09-22 11:28   ` Thomas Huth
2026-09-21  5:46 ` [PATCH 3/4] tests/qtest/usb-hcd-xhci: test isoch pacing with MFINDEX above 2^32 Junjie Cao
2026-09-22  4:57   ` Philippe Mathieu-Daudé
2026-09-21  5:46 ` [PATCH 4/4] tests/qtest/usb-hcd-xhci: test isoch endpoint type mismatch Junjie Cao

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.