DF-5509 / manifest.json
{ "finding_id": "DF-5509", "title": "ehci_pci.c arms ehci_interrupt before controller takeover/init: the pre-init handler is mute (wrong-register USBSTS read, sc_eintrs==0, no acknowledge) -> level-INTx IRQ storm for the whole window incl. the 5s BIOS-handoff park", "verdict": "reproduced", "impact": "dos", "confidence": "certain", "root_cause_lines": [ "sys/bus/u4b/controller/ehci_pci.c:390-391", "sys/bus/u4b/controller/ehci_pci.c:398", "sys/bus/u4b/controller/ehci_pci.c:451", "sys/bus/u4b/controller/ehci_pci.c:517-546", "sys/bus/u4b/controller/ehci.c:308", "sys/bus/u4b/controller/ehci.c:335", "sys/bus/u4b/controller/ehci.c:353", "sys/bus/u4b/controller/ehci.c:1504-1513", "sys/kern/subr_bus.c:1953-1954" ], "reproduce": { "build": "in guest: mkdir -p /root/ehciarm && cp mutearm.c Makefile /root/ehciarm/ && cd /root/ehciarm && make KERNBUILDDIR=/usr/obj/usr/src/sys/X86_64_GENERIC", "run": "./run.sh (phases; needs QEMU launched with -device usb-ehci,id=ehci0 and the monitor socket dfbsd-qemu/boot-mon.sock)", "expected": "stock driver: ehci0 intr counter 393106 -> 704268 (311,162) for one parked attach with a single real port event; control 55; permanent variant ~33K/s sustained until sc_eintrs restored; patched (fix.diff): delta 0 during the park, delta 105 total, USB functional" }, "kernel_refs": [ "sys/bus/u4b/controller/ehci_pci.c:390-391", "sys/bus/u4b/controller/ehci_pci.c:398", "sys/bus/u4b/controller/ehci_pci.c:517-546", "sys/bus/u4b/controller/ehci.c:308", "sys/bus/u4b/controller/ehci.c:335", "sys/bus/u4b/controller/ehci.c:1504-1513", "sys/kern/subr_bus.c:1953-1954" ], "artifacts": [ "mutearm.c", "Makefile", "build.sh", "run.sh", "trigger_endtoend.sh", "trigger_mute.sh", "mon.py", "build.log", "run.log", "serial_console_full.log", "env.txt", "fix.diff", "fix_build_guest.log", "fix_validation_3pt.log", "VERDICT.md", "README.md", "manifest.json", "verdict.json" ] } |