Executive brief
A technical issue in the Linux kernel for LoongArch systems could cause computers to hang or freeze during the shutdown, reboot, or halt process. This occurs because the system fails to properly notify its internal coordination mechanism (RCU) that certain processor cores are being turned off, leading the system to wait indefinitely for a response that will never come. While this does not directly expose data, it can impact system availability and operational reliability during maintenance tasks.
Technical details
A race condition and logic error existed in the LoongArch implementation of stop_this_cpu(). When smp_send_stop() is called, secondary CPUs are parked and marked offline for the scheduler, but the RCU subsystem was not informed. Consequently, RCU would wait for a quiescent state from CPUs that were spinning indefinitely with interrupts disabled. This became a functional issue following changes to irq_work_sync() which introduced a dependency on synchronize_rcu() during shutdown on architectures without irq_work self-IPI. The fix involves calling rcutree_report_cpu_dead() (or rcu_report_dead()) after interrupts are disabled in the stop_this_cpu() path.
Affected products
- Linux Linux kernel LoongArch architecture versions prior to fixed stable releases
Timeline
- 2026-06-25: other: Patch authored
- 2026-07-24: disclosed: CVE published
- 2026-07-24: patched: Fixed in multiple stable kernel branches
References
- https://git.kernel.org/stable/c/0833b2b84c2fc1387f8165f0cbf6a02d67f647a5
- https://git.kernel.org/stable/c/1fa22de588a65880d6fe54c38c87fffe7d519f60
- https://git.kernel.org/stable/c/262dadc619e69ebeb97affd334cd1078a9704e98
- https://git.kernel.org/stable/c/90e254f18b8c224460082329dd5c42fd30995c2f
- https://git.kernel.org/stable/c/a0269e928728f970c782319fee53d92d4ea4e512
- https://git.kernel.org/stable/c/f2539c56c74691e7a88af6372ba2b48c06ed2fe4