diff options
| author | Ha Thach <[email protected]> | 2026-07-28 00:17:14 +0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-07-28 00:17:14 +0700 |
| commit | 72f95d7d61a5a445be267eef2d677c33baa2fec2 (patch) | |
| tree | 305b6c753f71af9c2ba927682ae1e7366b6eb69b /lib | |
| parent | c83e3376588f2d87df80e6fd7de9e7ab6d99d5c1 (diff) | |
test/hil: replace PCI reset with root-port VBUS cycle for D-state recovery (#3789)
test/hil: replace PCI reset with root-port VBUS cycle for D-state recovery
pci-reset was documented as an FLR, but no controller on either rig has FLR, so
it issued a PCIe secondary bus reset on a live, driver-bound xHCI -- halting the
card until the PVE host was power-cycled, and returning success so the caller
could not tell. It destroyed the ci controller twice.
Replace it with root-cycle, which cuts VBUS at the xHCI root port and touches
only the root hub, so it never takes the per-device lock the wedged ioctl holds.
uhubctl needs -S, or its sysfs backend disconnects the child before cutting
power and blocks on that same lock. Success is proven by the device's sysfs
directory inode changing: node existence proves nothing, and devnum is reused
once the per-bus map wraps.
usbtest.py's hang path invokes it, then confirms via /proc that nothing still
holds the device node. Skill scripts now run from the repo; the drifted
/usr/local/sbin copies are deleted.
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions
