CVE-2025-38624

PCI: pnv_php: Clean up allocated IRQs on unplug

published August 22, 2025

CVSS
—
EPSS
0%
Percentile
6.2
In the wild
Unconfirmed
What it is

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

PCI: pnv_php: Clean up allocated IRQs on unplug

When the root of a nested PCIe bridge configuration is unplugged, the

pnv_php driver leaked the allocated IRQ resources for the child bridges'

hotplug event notifications, resulting in a panic.

Fix this by walking all child buses and deallocating all its IRQ resources

before calling pci_hp_remove_devices().

Also modify the lifetime of the workqueue at struct pnv_php_slot::wq so

that it is only destroyed in pnv_php_free_slot(), instead of

pnv_php_disable_irq(). This is required since pnv_php_disable_irq() will

now be called by workers triggered by hot unplug interrupts, so the

workqueue needs to stay allocated.

The abridged kernel panic that occurs without this patch is as follows:

WARNING: CPU: 0 PID: 687 at kernel/irq/msi.c:292 msi_device_data_release+0x6c/0x9c

CPU: 0 UID: 0 PID: 687 Comm: bash Not tainted 6.14.0-rc5+ #2

Call Trace:

msi_device_data_release+0x34/0x9c (unreliable)

release_nodes+0x64/0x13c

devres_release_all+0xc0/0x140

device_del+0x2d4/0x46c

pci_destroy_dev+0x5c/0x194

pci_hp_remove_devices+0x90/0x128

pci_hp_remove_devices+0x44/0x128

pnv_php_disable_slot+0x54/0xd4

power_write_file+0xf8/0x18c

pci_slot_attr_store+0x40/0x5c

sysfs_kf_write+0x64/0x78

kernfs_fop_write_iter+0x1b0/0x290

vfs_write+0x3bc/0x50c

ksys_write+0x84/0x140

system_call_exception+0x124/0x230

system_call_vectored_common+0x15c/0x2ec

[bhelgaas: tidy comments]

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00171 · 6.2th percentile
Published
2025-08-22T16:00Z
EPSS history
Timeline
  • 22 AUG 16:00Z
    PCI: pnv_php: Clean up allocated IRQs on unplug
    cvelistv5