Re: [PATCH v3] riscv: disable local interrupts and stop other CPUs before reboot/shutdown

"Troy Mitchell" <[email protected]>
Newsgroups dev.linux.lists.spacemit,org.infradead.lists.linux-riscv,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Wed Apr 29, 2026 at 7:44 PM CST, Troy Mitchell wrote:
> Hi all,
>
> On Mon Mar 30, 2026 at 5:58 PM CST, Troy Mitchell wrote:
>> From: Troy Mitchell <[email protected]>
>>
>> Currently, the RISC-V implementation of machine_restart(), machine_halt(),
>> and machine_power_off() invokes the kernel teardown chains (e.g.,
>> do_kernel_restart()) with local interrupts enabled and other CPUs still
>> running.
>>
>> This implementation fails to provide a deterministic execution environment
>> for registered handlers in the restart or power-off notifier chains. These
>> chains are intended to be executed in a strict atomic and single-threaded
>> context.
>>
>> Specifically, under CONFIG_PREEMPT_RCU, rcu_read_lock() does not increment
>> the preempt_count. If local interrupts remain enabled, the environment
>> is not guaranteed to be atomic. This can lead to a context misidentification
>> within generic kernel teardown code, causing it to incorrectly enter
>> non-atomic paths (such as attempting to acquire sleeping locks), which
>> results in fatal "scheduling while atomic" splats or system hangs.
>>
>> Additionally, stopping other CPUs ensures the primary CPU has exclusive
>> access to the hardware state during the final teardown phase, preventing
>> unpredictable interference from other active cores.
>>
>> Align RISC-V with other major architectures by disabling local interrupts
>> and stopping other CPUs at the beginning of the shutdown sequences. This
>> guarantees the architectural expectations of the kernel's restart and
>> power-off handlers are met.
>>
>> Signed-off-by: Troy Mitchell <[email protected]>
>> Tested-by: Aurelien Jarno <[email protected]>
> Gentle ping on this patch. Is there anything I should change or any
> concerns with the approach?
Just a gentle ping on this series. 

Please let me know if anyone has any feedback or if there is anything 
I should update.

                                  - Troy
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.