danos/system/drivers
Daniel Samson 27f87cb5ba
usb: don't spin on a SuperSpeed hub's change bits; log hub port status
Real-hardware finding: a SuperSpeed hub (the user's Genesys, 4 SS
downstream ports) HUNG the bus driver at boot — it stopped logging with
no fault, and the hub's port power dropped. Cause: a SuperSpeed hub has
change bits a USB2 hub lacks (link-state, BH-reset), and the B4 servicing
— written and tested against QEMU's USB2 hub — never cleared them, so
the hub's status-change endpoint re-reported the same port forever and
the driver spun servicing it, never reaching the USB2 companion hub
where the full-speed keyboard actually lives.

hubPortStatusAck now clears the SuperSpeed-only change features too
(gated on hub speed; a USB2 hub is unaffected), and the tick services a
bounded batch of hub changes (32) before yielding — so even if a hub's
change bits misbehave, the driver cannot spin the machine. A per-port
status log line surfaces exactly what a hub reports, so the next real
boot shows the SS hub's port states and whether the USB2 companion
enumerates. QEMU usb-hub cases still green (the SS clears are gated off
for QEMU's USB2 hub).
2026-07-21 22:44:46 +01:00
..
pci-bus runtime: std.log for every user binary — kernel-stamped attribution 2026-07-21 15:39:51 +01:00
ps2-bus runtime: std.log for every user binary — kernel-stamped attribution 2026-07-21 15:39:51 +01:00
usb-hid usb-hid: echo typed characters to the log — a simple keyboard check 2026-07-21 22:27:47 +01:00
usb-storage usb/fat: transfer events matched by slot+endpoint; storage failures heal 2026-07-21 20:27:55 +01:00
usb-xhci-bus usb: don't spin on a SuperSpeed hub's change bits; log hub port status 2026-07-21 22:44:46 +01:00
virtio-gpu Merge branch 'claude/shm-runtime-meaning-4fce7c' 2026-07-21 17:27:39 +01:00