CVE-2026-80626 PUBLISHED

powerpc/perf: fix preempt count underflow in fsl_emb_pmu_del

Assigner: Linux
Reserved: 26.08.2026 Published: 28.08.2026 Updated: 28.08.2026

In the Linux kernel, the following vulnerability has been resolved:

powerpc/perf: fix preempt count underflow in fsl_emb_pmu_del

fsl_emb_pmu_del() unconditionally calls put_cpu_var(cpu_hw_events) at the 'out:' label, but only calls the matching get_cpu_var() after the 'i < 0' early-return check. When event->hw.idx is negative the function jumps to 'out:' without having taken get_cpu_var(), and the trailing put_cpu_var() then issues an unmatched preempt_enable(), underflowing preempt_count.

On a CONFIG_PREEMPT=y kernel preempt_count would underflow and eventually present as a 'scheduling while atomic' BUG.

Move put_cpu_var() to pair with get_cpu_var() so the percpu access is correctly bracketed and the 'out:' label only handles perf_pmu_enable.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from a11106544f33c104706ae42d27219a409b67478e to c0c7722308c5f303117d8bd555290fdf26b098da (excl.)
  • affected from a11106544f33c104706ae42d27219a409b67478e to 67aeb1eb93d4ffd898a3e74a7f3fe46ee71feb28 (excl.)
  • affected from a11106544f33c104706ae42d27219a409b67478e to 9a515e00b00132b6fc3f1dd62dc5204bbda8cb10 (excl.)
  • affected from a11106544f33c104706ae42d27219a409b67478e to 5397142d60aa29dcf636f5459d960bfc4f97c42a (excl.)
  • affected from a11106544f33c104706ae42d27219a409b67478e to b89477077c834d94381c7bf07d81193bebefcff9 (excl.)
  • affected from a11106544f33c104706ae42d27219a409b67478e to 73711688479df333acc134e3730fff1acba1843e (excl.)
  • affected from a11106544f33c104706ae42d27219a409b67478e to b504fd953664c3f4d176ae8cb594adb3fda9d577 (excl.)
  • affected from a11106544f33c104706ae42d27219a409b67478e to 81e3a86030462824a67d697739cf3f387f4ba350 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 2.6.34 is affected
  • unaffected from 0 to 2.6.34 (excl.)
  • unaffected from 5.10.261 to 5.10.* (incl.)
  • unaffected from 5.15.212 to 5.15.* (incl.)
  • unaffected from 6.1.178 to 6.1.* (incl.)
  • unaffected from 6.6.145 to 6.6.* (incl.)
  • unaffected from 6.12.97 to 6.12.* (incl.)
  • unaffected from 6.18.40 to 6.18.* (incl.)
  • unaffected from 7.1.5 to 7.1.* (incl.)
  • unaffected from 7.2 to * (incl.)

References