Description
In the Linux kernel, the following vulnerability has been resolved:
powerpc/perf: Optimize clearing the pending PMI and remove WARN_ON for PMI check in power_pmu_disable
commit 2c9ac51b850d ("powerpc/perf: Fix PMU callbacks to clear
pending PMI before resetting an overflown PMC") added a new
function "pmi_irq_pending" in hw_irq.h. This function is to check
if there is a PMI marked as pending in Paca (PACA_IRQ_PMI).This is
used in power_pmu_disable in a WARN_ON. The intention here is to
provide a warning if there is PMI pending, but no counter is found
overflown.
During some of the perf runs, below warning is hit:
WARNING: CPU: 36 PID: 0 at arch/powerpc/perf/core-book3s.c:1332 power_pmu_disable+0x25c/0x2c0
Modules linked in:
-----
NIP [c000000000141c3c] power_pmu_disable+0x25c/0x2c0
LR [c000000000141c8c] power_pmu_disable+0x2ac/0x2c0
Call Trace:
[c000000baffcfb90] [c000000000141c8c] power_pmu_disable+0x2ac/0x2c0 (unreliable)
[c000000baffcfc10] [c0000000003e2f8c] perf_pmu_disable+0x4c/0x60
[c000000baffcfc30] [c0000000003e3344] group_sched_out.part.124+0x44/0x100
[c000000baffcfc80] [c0000000003e353c] __perf_event_disable+0x13c/0x240
[c000000baffcfcd0] [c0000000003dd334] event_function+0xc4/0x140
[c000000baffcfd20] [c0000000003d855c] remote_function+0x7c/0xa0
[c000000baffcfd50] [c00000000026c394] flush_smp_call_function_queue+0xd4/0x300
[c000000baffcfde0] [c000000000065b24] smp_ipi_demux_relaxed+0xa4/0x100
[c000000baffcfe20] [c0000000000cb2b0] xive_muxed_ipi_action+0x20/0x40
[c000000baffcfe40] [c000000000207c3c] __handle_irq_event_percpu+0x8c/0x250
[c000000baffcfee0] [c000000000207e2c] handle_irq_event_percpu+0x2c/0xa0
[c000000baffcff10] [c000000000210a04] handle_percpu_irq+0x84/0xc0
[c000000baffcff40] [c000000000205f14] generic_handle_irq+0x54/0x80
[c000000baffcff60] [c000000000015740] __do_irq+0x90/0x1d0
[c000000baffcff90] [c000000000016990] __do_IRQ+0xc0/0x140
[c0000009732f3940] [c000000bafceaca8] 0xc000000bafceaca8
[c0000009732f39d0] [c000000000016b78] do_IRQ+0x168/0x1c0
[c0000009732f3a00] [c0000000000090c8] hardware_interrupt_common_virt+0x218/0x220
This means that there is no PMC overflown among the active events
in the PMU, but there is a PMU pending in Paca. The function
"any_pmc_overflown" checks the PMCs on active events in
cpuhw->n_events. Code snippet:
<<>>
if (any_pmc_overflown(cpuhw))
clear_pmi_irq_pending();
else
WARN_ON(pmi_irq_pending());
<<>>
Here the PMC overflown is not from active event. Example: When we do
perf record, default cycles and instructions will be running on PMC6
and PMC5 respectively. It could happen that overflowed event is currently
not active and pending PMI is for the inactive event. Debug logs from
trace_printk:
<<>>
any_pmc_overflown: idx is 5: pmc value is 0xd9a
power_pmu_disable: PMC1: 0x0, PMC2: 0x0, PMC3: 0x0, PMC4: 0x0, PMC5: 0xd9a, PMC6: 0x80002011
<<>>
Here active PMC (from idx) is PMC5 , but overflown PMC is PMC6(0x80002011).
When we handle PMI interrupt for such cases, if the PMC overflown is
from inactive event, it will be ignored. Reference commit:
commit bc09c219b2e6 ("powerpc/perf: Fix finding overflowed PMC in interrupt")
Patch addresses two changes:
1) Fix 1 : Removal of warning ( WARN_ON(pmi_irq_pending()); )
We were printing warning if no PMC is found overflown among active PMU
events, but PMI pending in PACA. But this could happen in cases where
PMC overflown is not in active PMC. An inactive event could have caused
the overflow. Hence the warning is not needed. To know pending PMI is
from an inactive event, we need to loop through all PMC's which will
cause more SPR reads via mfspr and increase in context switch. Also in
existing function: perf_event_interrupt, already we ignore PMI's
overflown when it is from an inactive PMC.
2) Fix 2: optimization in clearing pending PMI.
Currently we check for any active PMC overflown before clearing PMI
pending in Paca. This is causing additional SP
---truncated---
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 5.10.94 – < 5.10.137, 5.15.17 – < 5.15.61, 5.16.3 – < 5.17, 5.17 | 5.10.137 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 6.0.2-1 | — |
| Debian 13 | linux | 6.0.2-1 | — |
| Debian 12 | linux | 6.0.2-1 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 24.04 LTS | linux-riscv +2 | No fix yet | — |
| Ubuntu 22.04 LTS | linux +1 | 5.15.0-53.59 | — |
| Ubuntu 22.04 LTS | linux-aws | 5.15.0-1023.27 | — |
| Ubuntu 22.04 LTS | linux-azure | 5.15.0-1023.29 | — |
| Ubuntu 22.04 LTS | linux-azure-fde | 5.15.0-1024.30.1 | — |
| Ubuntu 22.04 LTS | linux-gcp | 5.15.0-1022.29 | — |
| Ubuntu 22.04 LTS | linux-gke | 5.15.0-1020.25 | — |
| Ubuntu 22.04 LTS | linux-gkeop | 5.15.0-1008.12 | — |
| Ubuntu 22.04 LTS | linux-ibm | 5.15.0-1018.21 | — |
| Ubuntu 22.04 LTS | linux-intel-iotg | 5.15.0-1018.23 | — |
| Ubuntu 22.04 LTS | linux-kvm | 5.15.0-1021.26 | — |
| Ubuntu 22.04 LTS | linux-nvidia | 5.15.0-1015.15 | — |
| Ubuntu 22.04 LTS | linux-oracle | 5.15.0-1022.28 | — |
| Ubuntu 22.04 LTS | linux-raspi | 5.15.0-1018.20 | — |
| Ubuntu 22.04 LTS | linux-riscv +32 | No fix yet | — |
| Ubuntu 20.04 LTS | linux-aws-5.15 +1 | 5.15.0-1023.27~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-azure-5.15 | 5.15.0-1023.29~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-gcp-5.15 | 5.15.0-1022.29~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-gke +28 | No fix yet | — |
| Ubuntu 20.04 LTS | linux-hwe-5.15 +1 | 5.15.0-53.59~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-intel-iotg-5.15 | 5.15.0-1018.23~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-oracle-5.15 | 5.15.0-1022.28~20.04.1 | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
Show 1 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime | 5.15.0-1025.28 | — |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP5 | kernel-64kb +6 | 5.14.21-150500.55.113.1 | SUSE-SU-2025:02264-1 |
| SLES 15 SP5 | kernel-default-base | 5.14.21-150500.55.113.1.150500.6.53.1 | SUSE-SU-2025:02264-1 |
| SLES 15 SP4 | kernel-64kb +3 | 5.14.21-150400.24.170.2 | SUSE-SU-2025:02537-1 |
| SLES 15 SP4 | kernel-default-base | 5.14.21-150400.24.170.2.150400.24.86.2 | SUSE-SU-2025:02537-1 |
| SLES 15 SP4 | kernel-docs +2 | 5.14.21-150400.24.170.1 | SUSE-SU-2025:02537-1 |
| SLES 15 SP3 | kernel-64kb +6 | 5.3.18-150300.59.211.1 | SUSE-SU-2025:02308-1 |
| SLES 15 SP3 | kernel-default-base | 5.3.18-150300.59.211.1.150300.18.126.1 | SUSE-SU-2025:02308-1 |
| SLES 15 SP3 | kernel-obs-build | 5.3.18-150300.59.212.1 | SUSE-SU-2025:02308-1 |
Show 15 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 15 SP5 | kernel-default-base | 5.14.21-150500.55.113.1.150500.6.53.1 | SUSE-SU-2025:02264-1 |
| SLES for SAP 15 SP5 | kernel-docs +4 | 5.14.21-150500.55.113.1 | SUSE-SU-2025:02264-1 |
| SLES for SAP 15 SP4 | kernel-default +1 | 5.14.21-150400.24.170.2 | SUSE-SU-2025:02537-1 |
| SLES for SAP 15 SP4 | kernel-default-base | 5.14.21-150400.24.170.2.150400.24.86.2 | SUSE-SU-2025:02537-1 |
| SLES for SAP 15 SP4 | kernel-docs +2 | 5.14.21-150400.24.170.1 | SUSE-SU-2025:02537-1 |
| SLES for SAP 15 SP3 | kernel-default-base | 5.3.18-150300.59.211.1.150300.18.126.1 | SUSE-SU-2025:02308-1 |
| SLES for SAP 15 SP3 | kernel-docs +4 | 5.3.18-150300.59.211.1 | SUSE-SU-2025:02308-1 |
| SLES for SAP 15 SP3 | kernel-obs-build | 5.3.18-150300.59.212.1 | SUSE-SU-2025:02308-1 |
| SLE Micro 5.5 | kernel-default-base | 5.14.21-150500.55.113.1.150500.6.53.1 | SUSE-SU-2025:02264-1 |
| SLE Micro 5.5 | kernel-rt | 5.14.21-150500.13.100.2 | SUSE-SU-2025:02321-1 |
| SLE Micro 5.5 | kernel-source +1 | 5.14.21-150500.55.113.1 | SUSE-SU-2025:02264-1 |
| SLE Micro 5.5 | kernel-source-rt | 5.14.21-150500.13.100.1 | SUSE-SU-2025:02321-1 |
| SLE Micro 5.4 | kernel-default | 5.14.21-150400.24.170.2 | SUSE-SU-2025:02537-1 |
| SLE Micro 5.4 | kernel-default-base | 5.14.21-150400.24.170.2.150400.24.86.2 | SUSE-SU-2025:02537-1 |
| SLE Micro 5.4 | kernel-rt +1 | 5.14.21-150400.15.124.1 | SUSE-SU-2025:02322-1 |
| SLE Micro 5.3 | kernel-default | 5.14.21-150400.24.170.2 | SUSE-SU-2025:02537-1 |
| SLE Micro 5.3 | kernel-default-base | 5.14.21-150400.24.170.2.150400.24.86.2 | SUSE-SU-2025:02537-1 |
| SLE Micro 5.3 | kernel-rt +1 | 5.14.21-150400.15.124.1 | SUSE-SU-2025:02322-1 |
| SLE Micro 5.2 | kernel-default | 5.3.18-150300.59.211.1 | SUSE-SU-2025:02308-1 |
| SLE Micro 5.2 | kernel-default-base | 5.3.18-150300.59.211.1.150300.18.126.1 | SUSE-SU-2025:02308-1 |
| SLE Micro 5.2 | kernel-rt +1 | 5.3.18-150300.214.1 | SUSE-SU-2025:02320-1 |
| SLE Micro 5.1 | kernel-default | 5.3.18-150300.59.211.1 | SUSE-SU-2025:02308-1 |
| SLE Micro 5.1 | kernel-default-base | 5.3.18-150300.59.211.1.150300.18.126.1 | SUSE-SU-2025:02308-1 |
| SLE Micro 5.1 | kernel-rt +1 | 5.3.18-150300.214.1 | SUSE-SU-2025:02320-1 |
| SLE Live Patching 15 SP5 | kernel-default | 5.14.21-150500.55.113.1 | SUSE-SU-2025:02264-1 |
| SLE Live Patching 15 SP5 | kernel-livepatch-SLE15-SP5_Update_28 | 1-150500.11.3.1 | SUSE-SU-2025:02264-1 |
| SLE Live Patching 15 SP3 | kernel-default | 5.3.18-150300.59.211.1 | SUSE-SU-2025:02308-1 |
| SLE Live Patching 15 SP3 | kernel-livepatch-SLE15-SP3_Update_59 | 1-150300.7.3.1 | SUSE-SU-2025:02308-1 |
| SLE HPC 15 SP5 | kernel-64kb +5 | 5.14.21-150500.55.113.1 | SUSE-SU-2025:02264-1 |
| SLE HPC 15 SP5 | kernel-default-base | 5.14.21-150500.55.113.1.150500.6.53.1 | SUSE-SU-2025:02264-1 |
| SLE HPC 15 SP4 | kernel-64kb +2 | 5.14.21-150400.24.170.2 | SUSE-SU-2025:02537-1 |
| SLE HPC 15 SP4 | kernel-default-base | 5.14.21-150400.24.170.2.150400.24.86.2 | SUSE-SU-2025:02537-1 |
| SLE HPC 15 SP4 | kernel-docs +2 | 5.14.21-150400.24.170.1 | SUSE-SU-2025:02537-1 |
| SUSE Manager Server 4.3 | kernel-default +1 | 5.14.21-150400.24.170.2 | SUSE-SU-2025:02537-1 |
| SUSE Manager Server 4.3 | kernel-default-base | 5.14.21-150400.24.170.2.150400.24.86.2 | SUSE-SU-2025:02537-1 |
| SUSE Manager Server 4.3 | kernel-syms +1 | 5.14.21-150400.24.170.1 | SUSE-SU-2025:02537-1 |
| SUSE Manager Proxy 4.3 | kernel-default | 5.14.21-150400.24.170.2 | SUSE-SU-2025:02537-1 |
| SUSE Manager Proxy 4.3 | kernel-default-base | 5.14.21-150400.24.170.2.150400.24.86.2 | SUSE-SU-2025:02537-1 |
| SUSE Manager Proxy 4.3 | kernel-syms +1 | 5.14.21-150400.24.170.1 | SUSE-SU-2025:02537-1 |
| SUSE Enterprise Storage 7.1 | kernel-64kb +5 | 5.3.18-150300.59.211.1 | SUSE-SU-2025:02308-1 |
| SUSE Enterprise Storage 7.1 | kernel-default-base | 5.3.18-150300.59.211.1.150300.18.126.1 | SUSE-SU-2025:02308-1 |
| SUSE Enterprise Storage 7.1 | kernel-obs-build | 5.3.18-150300.59.212.1 | SUSE-SU-2025:02308-1 |
Advisories 7
- WID-SEC-2025-1350 Linux Kernel: Mehrere Schwachstellen ermöglichen Denial of Service BSI CERT-Bund (WID) · Nov 12, 2026
- SUSE-SU-2025:02320-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:02321-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:02322-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:02537-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 5, 2026
- SUSE-SU-2025:02264-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:02308-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Jul 15, 2025
References
- https://git.kernel.org/stable/c/875b2bf469d094754ac2ba9af91dcd529eb12bf6
- https://git.kernel.org/stable/c/87b1a9175f08313f40fcb6d6dc536dbe451090eb
- https://git.kernel.org/stable/c/0a24ea26c3278216642a43291df7976a73a0a7ee
- https://git.kernel.org/stable/c/7e83af3dd4a3afca8f83ffde518cafd52f45b830
- https://git.kernel.org/stable/c/890005a7d98f7452cfe86dcfb2aeeb7df01132ce