{
  "finding_id": "DF-5544",
  "title": "uhci_pci_detach() swallows device_delete_children() failure: unconditional IRQ/IO/DMA teardown + freed softc under a still-attached child, detach reports success",
  "file": "sys/bus/u4b/controller/uhci_pci.c",
  "lines": [374, 411],
  "verdict_summary": "reproduced/panic (deterministic under harness), fixed by propagated-return fix.diff",
  "impact": "panic",
  "reproduce": {
    "build": "cd /root/df5544 && make KERNBUILDDIR=/usr/obj/usr/src/sys/X86_64_GENERIC",
    "run": "kldload /root/df5544/veto.ko; sysctl hw.df5544=1; sysctl hw.df5544=2",
    "expected": "veto0 EBUSY veto -> 'uhci0: detached' + device_detach returns 0 with veto0(attached=1) orphaned -> Fatal trap 12 page fault (NULL kfreed softc) on next touch"
  },
  "kernel_refs": [
    "sys/bus/u4b/controller/uhci_pci.c:374",
    "sys/bus/u4b/controller/uhci_pci.c:380",
    "sys/bus/u4b/controller/uhci_pci.c:390",
    "sys/bus/u4b/controller/uhci_pci.c:400",
    "sys/bus/u4b/controller/uhci_pci.c:404",
    "sys/bus/u4b/controller/uhci_pci.c:409",
    "sys/bus/u4b/controller/uhci_pci.c:411",
    "sys/kern/subr_bus.c:885",
    "sys/kern/subr_bus.c:2131",
    "sys/kern/subr_bus.c:897",
    "sys/bus/u4b/controller/usb_controller.c:242"
  ],
  "artifacts": [
    "README.md", "VERDICT.md", "veto.c", "Makefile", "build.sh", "run.sh",
    "build.log", "run.log", "run.fix.log", "panic.txt",
    "fix_serial_console_full.log", "env.txt", "fix.diff",
    "manifest.json", "verdict.json"
  ],
  "fix": {
    "status": "fixed",
    "summary": "check device_delete_children() and propagate the error before any teardown"
  }
}
