{
  "finding_id": "DF-4915",
  "status": "not_reproduced",
  "reproduced": 0,
  "impact": "none",
  "confidence": "certain",
  "verdict": "The DragonFly port of amdgpu_virt.c #if 0d out upstreams in_interrupt() guard in amdgpu_virt_kiq_rreg/wreg (amdgpu_virt.c:162-168, 216-222) while this port runs GPU IH processing directly in hardirq (amdgpu_irq.c:189-197 -> amdgpu_ih.c:159; cz_ih.c:276-279 does an unconditional WREG32 per interrupt; tonga_ih.c:213-216 on IH overflow). Result on a running SR-IOV VF guest: an unconditional kprintf per KIQ-mediated MMIO access (console flood, incl. hardirq context) and, when the KIQ fence times out, msleep(5) from hardirq context (amdgpu_virt.c:175/229) x80 iterations - an illegal sleep from interrupt context that panics/corrupts the scheduler. Not reproduced on the audit QEMU guest because no AMD PCI device exists (env.txt), so amdgpu never binds and the functions are unreachable; the code-level divergence vs upstream v4.19 is certain (verbatim comparison archived in VERDICT.md).",
  "exploit_chain": "",
  "evidence": "VERDICT.md (upstream-vs-DF diff of the guard, hardirq path chain with path:line); trigger.md (2-leg trigger for SR-IOV hardware); env.txt (pciconf: zero vendor-0x1002 devices on guest)",
  "kernel_refs": [
    "sys/dev/drm/amd/amdgpu/amdgpu_virt.c:162",
    "sys/dev/drm/amd/amdgpu/amdgpu_virt.c:169",
    "sys/dev/drm/amd/amdgpu/amdgpu_virt.c:175",
    "sys/dev/drm/amd/amdgpu/amdgpu_virt.c:216",
    "sys/dev/drm/amd/amdgpu/amdgpu_virt.c:223",
    "sys/dev/drm/amd/amdgpu/amdgpu_virt.c:229",
    "sys/dev/drm/amd/amdgpu/amdgpu_irq.c:195",
    "sys/dev/drm/amd/amdgpu/amdgpu_ih.c:159",
    "sys/dev/drm/amd/amdgpu/cz_ih.c:276",
    "sys/dev/drm/amd/amdgpu/tonga_ih.c:213",
    "sys/dev/drm/amd/amdgpu/amdgpu_device.c:131",
    "sys/dev/drm/amd/amdgpu/amdgpu.h:239",
    "sys/dev/drm/include/linux/delay.h:33"
  ],
  "poc_changes": "No runnable PoC exists for this guest (hardware-gated); pack documents the exact hardware trigger procedure and the source-level proof instead of a C reproducer.",
  "attempts": 1,
  "guest_uname": "DragonFly dfbsd 6.5-DEVELOPMENT DragonFly 6.5-DEVELOPMENT #0: Thu Jul 2 06:02:54 UTC 2026     root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC  x86_64",
  "runtime_sec": 40,
  "guest_dirty": 0,
  "build_cmd": "n/a (kldload amdgpu in an SR-IOV VF guest with AMD GPU hardware)",
  "run_cmd": "n/a (see trigger.md legs 1-2)",
  "code_hash": "8f434e40bc6f045a5a6df7628db47d014a30a4880b5bef1c8c38dbb8b2eed161",
  "notes": "Hardware-gated: audit guest has no AMD GPU (7 PCI devices, zero 0x1002/0x104c). Code-level divergence certain: upstream v4.19 bails to failed_kiq_* in in_interrupt() context; the DF port kept the comment (amdgpu_virt.c:154-161) but removed the check and kprintfs instead. DoS-class only (console flood + hardirq sleep), no memory-safety primitive.",
  "recommended_fix": "Restore the interrupt-context early-out using mycpu->gd_intr_nesting_level != 0 in both amdgpu_virt_kiq_rreg and amdgpu_virt_kiq_wreg and drop the unconditional kprintf (see VERDICT.md diff).",
  "fix_status": "not_testable",
  "fix_baseline_reproduced": 0,
  "fix_patched_reproduced": 0,
  "fix_verdict": "Fix could not be validated: no SR-IOV-capable AMD GPU in the audit guest, so neither baseline nor patched behavior is reachable; the proposed diff restores upstream v4.19 semantics verbatim.",
  "fix_evidence": "VERDICT.md Recommended fix section contains the git-apply-able diff against amdgpu_virt.c."
}