{
  "finding_id": "DF-5200",
  "title": "kthread_park() returns without any wait-for-park and kthread_parkme() never deschedules - park/unpark quiescence contract void, drm_sched_entity_fini/amdgpu-reset UAF",
  "verdict": "reproduced",
  "impact": "panic",
  "confidence": "certain",
  "reproduce": {
    "build": "kldload amdgpu; cd /tmp/DF-5200 && make",
    "run": "kldload /tmp/DF-5200/df5200.ko; sysctl hw.df5200.test=1; sysctl hw.df5200.test=2; sysctl hw.df5200.test=3",
    "expected": "test1: 5/5 rounds 'RAN WHILE PARKED'; test2: 5/5 'UAF WRITE PROVEN ... overlap=yes'; test3: panic 'DF5200: kthread_park() quiescence broken ...'"
  },
  "kernel_refs": [
    "sys/dev/drm/linux_kthread.c:103",
    "sys/dev/drm/linux_kthread.c:110",
    "sys/dev/drm/linux_kthread.c:126",
    "sys/dev/drm/linux_kthread.c:132",
    "sys/dev/drm/scheduler/sched_entity.c:277",
    "sys/dev/drm/scheduler/sched_main.c:514",
    "sys/dev/drm/amd/amdgpu/amdgpu_device.c:3412",
    "sys/dev/drm/amd/amdgpu/amdgpu_debugfs.c:868",
    "sys/kern/lwkt_thread.c:153"
  ],
  "artifacts": [
    "df5200.c", "Makefile", "build.sh", "run.sh", "build.log",
    "run.log", "run.2.log", "panic.txt", "run_fixed.log",
    "fix.diff", "env.txt", "manifest.json", "verdict.json"
  ]
}
