---
id: CVE-2025-21645
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  platform/x86/amd/pmc: Only disable IRQ1 wakeup where i8042 actually enabled it

  Wakeup for IRQ1 should be disabled only in cases where i8042 had
  actually enabled it, ot…
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  platform/x86/amd/pmc: Only disable IRQ1 wakeup where i8042 actually enabled it

  Wakeup for IRQ1 should be disabled only in cases where i8042 had
  actually enabled it, ot…
severity: medium
cvss: 5.5
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'
vendor: linux
product: linux_kernel
affected:
  - 'linux_kernel >= 5.15.95, < 5.16'
  - 'linux_kernel >= 6.1.11, < 6.1.140'
  - 'linux_kernel >= 6.2.1, < 6.6.72'
  - 'linux_kernel >= 6.7, < 6.12.10'
  - linux_kernel = 6.2
  - linux_kernel = 6.13
patched:
  - linux_kernel 6.12.10
published: '2025-01-19'
updated: '2026-07-14'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2025-21645'
references:
  - url: 'https://git.kernel.org/stable/c/5cc621085e2b7a9b1905a98f8e5a86bb4aea2016'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/ab47d72b736e78d3c2370b26e0bfc46eb0918391'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/b25778c87a6bce40c31e92364f08aa6240309e25'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/dd410d784402c5775f66faf8b624e85e41c38aaf'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://lists.debian.org/debian-lts-announce/2025/08/msg00010.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-019113.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
tags:
  - nvd
  - cve.org
epss: 0.00248
epssPercentile: 0.16386
ingestedAt: '2026-07-14T13:36:54.827Z'
---

## Overview

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

platform/x86/amd/pmc: Only disable IRQ1 wakeup where i8042 actually enabled it

Wakeup for IRQ1 should be disabled only in cases where i8042 had
actually enabled it, otherwise "wake_depth" for this IRQ will try to
drop below zero and there will be an unpleasant WARN() logged:

kernel: atkbd serio0: Disabling IRQ1 wakeup source to avoid platform firmware bug
kernel: ------------[ cut here ]------------
kernel: Unbalanced IRQ 1 wake disable
kernel: WARNING: CPU: 10 PID: 6431 at kernel/irq/manage.c:920 irq_set_irq_wake+0x147/0x1a0

The PMC driver uses DEFINE_SIMPLE_DEV_PM_OPS() to define its dev_pm_ops
which sets amd_pmc_suspend_handler() to the .suspend, .freeze, and
.poweroff handlers. i8042_pm_suspend(), however, is only set as
the .suspend handler.

Fix the issue by call PMC suspend handler only from the same set of
dev_pm_ops handlers as i8042_pm_suspend(), which currently means just
the .suspend handler.

To reproduce this issue try hibernating (S4) the machine after a fresh boot
without putting it into s2idle first.

[ij: edited the commit message.]

## Affected

- `linux_kernel >= 5.15.95, < 5.16`
- `linux_kernel >= 6.1.11, < 6.1.140`
- `linux_kernel >= 6.2.1, < 6.6.72`
- `linux_kernel >= 6.7, < 6.12.10`
- `linux_kernel = 6.2`
- `linux_kernel = 6.13`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.12.10`
