Executive brief
A flaw was discovered in the Linux kernel's handling of PCI hardware errors on PowerPC systems. This issue can cause the system to lock up (deadlock) when it attempts to recover from a hardware event, potentially leading to a complete system crash or denial of service. This affects the reliability of servers using PowerPC processors when hardware hotplugging or error recovery occurs.
Technical details
A deadlock vulnerability exists in the Linux kernel's powerpc/eeh driver due to recursive locking of 'pci_lock_rescan_remove'. The issue was introduced by a change intended to make the EEH driver hotplug-safe, which inadvertently caused 'eeh_handle_normal_event()' to acquire the rescan lock before calling 'eeh_pe_bus_get()', which then attempts to acquire the same lock. This nested acquisition results in a kernel deadlock, disrupting PCI error reporting and event handling. The fix introduces a non-locking variant of the bus retrieval function and ensures the lock is only acquired once at the appropriate scope. This affects PowerPC platforms (e.g., IBM POWER10) utilizing EEH for PCI error recovery.
Affected products
- Linux Linux Kernel powerpc architecture versions including 6.18-rc3 and earlier stable branches
Timeline
- 2025-12-10: patched: Initial patch submitted by IBM developers.
- 2026-05-27: advisory: CVE-2026-45904 published.
References
- https://git.kernel.org/stable/c/6e6561231c6cfc32c5631aeecc0928ff2b14265c
- https://git.kernel.org/stable/c/788dd28fd49610d6047cbb15dbf1186afffdfbaf
- https://git.kernel.org/stable/c/815a8d2feb5615ae7f0b5befd206af0b0160614c
- https://git.kernel.org/stable/c/87a1f93986aa1500b85aeff16b0b71c29ea116ea
- https://git.kernel.org/stable/c/89810e2d80281d42f855fac813786758ee16e323
- https://git.kernel.org/stable/c/b85ee287bfe52c6b2d9b41758b5e0d08679d5b39
- https://git.kernel.org/stable/c/f49faa4a64f8ac0e38983e606075b25dfcfc9ad4