Executive brief
A technical issue was identified in the Linux kernel's Cadence QuadSPI driver, which manages high-speed flash memory storage. Under specific conditions, such as when the system's hardware description is incomplete or broken, the driver could attempt to shut down the same hardware component twice. While primarily a stability concern that triggers system warnings, it could potentially lead to unexpected behavior during system startup or hardware initialization.
Technical details
A race or logic error exists in the `cqspi_probe` function of the `spi-cadence-quadspi.c` driver. Due to a previous refactoring of runtime Power Management (PM), error paths in the probe function could trigger `pm_runtime_disable()` while also manually disabling clocks. This results in a double-disable of the main IP clock, especially when Device Tree (DT) descriptions for attached flashes are missing or malformed. The fix involves moving the flash description parsing earlier in the probe sequence to avoid unnecessary setup and ensure PM states are handled correctly. The issue was resolved by reordering the initialization sequence to parse DT properties before PM activation.
Affected products
- Linux Linux Kernel 6.12, 6.6, 6.13
Timeline
- 2025-12-04: patched: Initial patch authored by Mark Brown
- 2026-05-08: disclosed: CVE published