{
  "finding_id": "DF-5545",
  "verdict": "reproduced / panic / certain",
  "impact": "panic",
  "reproduce": {
    "build": "guest: cd /root/df5545 && make KERNBUILDDIR=/usr/obj/usr/src/sys/X86_64_GENERIC (boot QEMU with -device qemu-xhci or -device nec-usb-xhci,msi=on,msix=off)",
    "run": "guest: kldload /root/df5545/veto.ko; sysctl hw.df5545=1; sysctl hw.df5545=2",
    "expected": "1) veto0: DETACH VETO: returning EBUSY  2) xhci0: detached / device_detach returned 0 (swallowed)  3) xhci0 STILL has 1 child device(s): veto0(attached=1)  4) Fatal trap 12, fault va=0x20, Stopped at df5545_thread+0x91 movq 0x20(%rax),%rdx — guest dead in DDB. On the fixed kernel: returned 16, 'refusing controller teardown', no panic."
  },
  "kernel_refs": [
    "sys/bus/u4b/controller/xhci_pci.c:355",
    "sys/bus/u4b/controller/xhci_pci.c:378",
    "sys/bus/u4b/controller/xhci_pci.c:380",
    "sys/kern/subr_bus.c:1292",
    "sys/kern/subr_bus.c:2156"
  ],
  "artifacts": [
    "README.md", "VERDICT.md", "veto.c", "Makefile", "build.sh", "run.sh",
    "build.log", "run.log", "run.fix.log", "panic.txt",
    "serial_console_full.log", "fix_build.log", "env.txt", "fix.diff",
    "manifest.json", "verdict.json"
  ]
}
