CVE-2026-80626: powerpc/perf: fix preempt count underflow in fsl_emb_pmu_del

Published Aug 28, 2026
·
Updated

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

powerpc/perf: fix preempt count underflow in fslembpmudel

fslembpmudel() unconditionally calls putcpuvar(cpuhwevents) at the 'out:' label, but only calls the matching getcpuvar() after the 'i < 0' early-return check. When event->hw.idx is negative the function jumps to 'out:' without having taken getcpuvar(), and the trailing putcpuvar() then issues an unmatched preemptenable(), underflowing preemptcount.

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

Move putcpuvar() to pair with getcpuvar() so the percpu access is correctly bracketed and the 'out:' label only handles perfpmuenable.

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Compensating control

    Update/patch the Linux kernel to address the fix for preempt count underflow in fsl_emb_pmu_del (powerpc/perf: fix preempt count underflow in fsl_emb_pmu_del), ensuring put_cpu_var() is correctly paired with get_cpu_var() so percpu access is properly bracketed.

Event History

Aug 28, 2026
CVE Published
via MITRE·06:48 AM
Data Sourced
via MITRE·06:48 AM
Description

Frequently Asked Questions

1

Which systems are most likely to be affected?

The issue is in the Linux kernel PowerPC performance-monitoring code, specifically fsl_emb_pmu_del. The described visible failure applies to kernels built with CONFIG_PREEMPT=y, where the preempt count can underflow and later trigger a "scheduling while atomic" BUG.

2

What condition triggers the underflow?

It occurs when fsl_emb_pmu_del handles an event whose event->hw.idx is negative. That path reaches cleanup without calling get_cpu_var(cpu_hw_events), but still calls put_cpu_var(cpu_hw_events), causing an unmatched preemption enable.

3

How can administrators identify a likely existing impact?

On a preemptible kernel, the issue may eventually surface as a "scheduling while atomic" BUG. The triggering path involves removal of a performance event with a negative hardware index.

4

What is the remediation?

Apply a kernel update containing the fix that moves put_cpu_var() to the scope paired with get_cpu_var(). This prevents the cleanup path for a negative event index from performing an unmatched put_cpu_var().

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203