Executive brief
A deadlock vulnerability was identified in the Linux kernel's SLIMbus driver for Qualcomm components. This issue occurs during specific system restart or power-down events, potentially causing the system to hang or become unresponsive. A fix has been released to ensure proper synchronization without triggering this lockup.
Technical details
A circular dependency (ABBA deadlock) exists in the slimbus qcom-ngd-ctrl driver between tx_lock and ctrl->lock. During Subsystem Restart (SSR) or PD Restart (PDR) notifications, the driver acquires tx_lock before calling qcom_slim_ngd_down(), which eventually attempts to acquire ctrl->lock via slim_report_absent(). Other code paths acquire these locks in the opposite order, leading to a potential deadlock and lockdep splats. The fix removes the unnecessary tx_lock acquisition in qcom_slim_ngd_ssr_pdr_notify(), as DMA transactions are already self-contained within their own transfer functions.
Affected products
- Linux Linux kernel a899d324863a3d15ce0eea513884e1b73a758c58 to 3d1561537237c6cc1db76155183d8bbdac2339f0
Timeline
- 2026-07-01: disclosed
- 2026-06-19: patched
References
- https://git.kernel.org/stable/c/3d1561537237c6cc1db76155183d8bbdac2339f0
- https://git.kernel.org/stable/c/55f2ea9ff83cc27a85526b14bc9b32f96a08d6ec
- https://git.kernel.org/stable/c/9708eb50fd7343145b422be852f890212155d845
- https://git.kernel.org/stable/c/9f0d45d509b434c54da10e01f4ef8086e4583401
- https://git.kernel.org/stable/c/aad4337a21b9ad3ae8d668fa8678d05e26ecbaa8
- https://git.kernel.org/stable/c/d54a221b0f3cd9e1f03f18104be34e02a8258fae
- https://git.kernel.org/stable/c/dc4d5c57e012c2c669793deb1515a57bbc6bf5dd