Executive brief
The Linux kernel's SCSI storage subsystem had a deadlock when resuming from suspend and a race condition that could cause disks to become disabled. A fix reorders when device removal notifications occur during resume, ensuring proper synchronization without blocking and preventing disk initialization failures on Hisi SAS controllers.
Technical details
This advisory describes a deadlock and race condition in the libsas (SAS transport layer) subsystem of the Linux kernel. The deadlock occurred when resuming from suspend: the PHYE_RESUME_TIMEOUT handler running on the HA event workqueue called sas_deform_port() which removes SCSI devices and waits for host resume, but the host cannot resume until the drain completes—creating a circular dependency. Skipping the drain to avoid the deadlock introduced a race where hisi_sas controllers could autosuspend before disk initialization completed, causing I/O failures and disk disablement. The fix moves the PHYE_RESUME_TIMEOUT notification to after sas_drain_work(), breaking the deadlock cycle. This is a logic-level fix requiring kernel update; the vulnerability is triggered during suspend/resume cycles and affects systems using Hisi SAS disk controllers or other SCSI HBA drivers that implement libsas.
Affected products
- Linux Linux kernel various
Timeline
- 2026-08-15: disclosed