Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
x86/mce: Avoid triggering a schedule call in the NMI context
In the original patch solution, when a UCR-type DRAM error occurs, the flow does not enter do_machine_check->mce_panic; instead, it exits after executing do_machine_check and continues with the irqentry_exit_to_user_mode function. This flow triggers a schedule call. Since irqentry_nmi_enter calls __preempt_count_add(NMI_OFFSET + HARDIRQ_OFFSET), if a schedule occurs without executing irqentry_nmi_exit, the system will call the preempt_disable() function. Then, __schedule will call schedule_debug or determine in_atomic_preempt_off() to be true, leading to __schedule_bug and reporting the following error: BUG: scheduling while atomic:…… Therefore, it is necessary to adjust the position of irqentry_nmi_enter. Signed-off-by: LeoLiu-oc <[email protected]>
- Loading branch information