DF-5283
cpu_mwait_cx_hint() NULL-pointer dereference when deep-sleep inhibition is active on a MONITOR-without-MWAIT-EXT CPU (latent kernel panic)
Summary
The inhibit fast-path derefs cpu_mwait_hints[0] without the CPU_MWAIT_HAS_CX guard while the idle loop only requires CPU_MI_MONITOR: on CPUs with CPUID.1 ECX MON but without CPUID.5 EXT/C1 sub-states the array is never allocated (cpu_mwait_attach returns early) - any cpu_inhibit_deep_sleep(1) (i915 pm_qos shim path) makes every CPU's idle loop read address 0. cpu_smp_stopped guards the same pointer; cx_hint forgot. Driver-mediated trigger, hang/panic ceiling; not constructible on the standard guest. Mirror-the-guard fix.
Discussion (0)
PoC verification
Evidence pack
findings/poc/DF-5283 Β· 1 files| File | Type | Description | Size | |
|---|---|---|---|---|
| verdict.json | file | 947 B | view raw |
Fix verification
not_testablebaseline noβ patch + rebuild βpatched clean
per-fix-DF-5283
Confirmed kernel references
Detail
Evidence (decisive lines)
static guard-mismatch trace (machdep.c:1133 vs 578/636 vs 1446)
Verified recommended fix
add cpu_mwait_hints != NULL to the fast-path condition
Verdict
untested (needs i915 + MON-without-MWAIT-EXT CPUID; latent)
No comments yet.