{
  "finding_id": "DF-4163",
  "title": "radeon_pm_fini_dpm never cancels pm.dpm.thermal.work nor clears dpm_enabled while the thermal IRQ outlives pm_fini: post-fini UAF in radeon_dpm_thermal_work_handler",
  "verdict": "inconclusive",
  "impact": "none",
  "reproduce": {
    "build": "n/a (hardware-gated)",
    "run": "on a radeon DPM machine with thermal IRQ armed: heat the GPU past a threshold while kldunload-ing the driver",
    "expected": "unpatched: use-after-free walk of rdev->pm.dpm.ps[] (kfree'd, num_ps>0) in radeon_dpm_pick_power_state / freed ps_priv+priv into SMC programming -> panic or garbage clock programming; patched: handler flushed/flag cleared before frees, no UAF"
  },
  "kernel_refs": [
    "sys/dev/drm/radeon/radeon_pm.c:1690",
    "sys/dev/drm/radeon/radeon_pm.c:1705",
    "sys/dev/drm/radeon/radeon_pm.c:881",
    "sys/dev/drm/radeon/radeon_pm.c:1062",
    "sys/dev/drm/radeon/radeon_pm.c:945",
    "sys/dev/drm/radeon/radeon_pm.c:1154",
    "sys/dev/drm/radeon/si.c:6429",
    "sys/dev/drm/radeon/si.c:6945",
    "sys/dev/drm/radeon/si_dpm.c:7078"
  ],
  "artifacts": [
    "README.md",
    "VERDICT.md",
    "fix.diff",
    "env.txt",
    "manifest.json",
    "verdict.json"
  ]
}
