{
  "finding_id": "DF-5546",
  "verdict": "reproduced / dos (kernel resource leak) / certain",
  "impact": "dos",
  "reproduce": {
    "build": "guest: cd /root/df5546 && make KERNBUILDDIR=/usr/obj/usr/src/sys/X86_64_GENERIC (boot QEMU with -device nec-usb-xhci,msi=on,msix=off AND /boot/loader.conf.local: hw.usb.xhci.use_polling=1)",
    "run": "guest: kldload /root/df5546/msileak.ko; sysctl hw.df5546=1",
    "expected": "pre-detach sc_irq_rid=1 sc_irq_res=0 sc_intr_hdl=0; device_detach returned 0; 'pci_release_msi(xhci0) probe returned 0 (LEAK: driver left MSI vectors allocated)' on the unpatched kernel; 'returned 19 (clean: nothing left to release)' on the fixed kernel. Note: -device qemu-xhci does NOT exercise the path (MSI-X only)."
  },
  "kernel_refs": [
    "sys/bus/u4b/controller/xhci_pci.c:234",
    "sys/bus/u4b/controller/xhci_pci.c:253",
    "sys/bus/u4b/controller/xhci_pci.c:366",
    "sys/bus/pci/pci.c:4365"
  ],
  "artifacts": [
    "README.md", "VERDICT.md", "msileak.c", "Makefile", "build.sh", "run.sh",
    "build.log", "run.log", "run.fix.log", "run.hw-precondition.log",
    "fix_build.log", "fix.diff", "manifest.json", "verdict.json"
  ]
}
