浏览代码

x86: disable IRQs before doing anything on nmi_shootdown_cpus()

Impact: make nmi_shootdown_cpus() callable from preemptible context

We need to know on which CPU we are running on, and we don't want to be
preempted while doing this.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Eduardo Habkost 16 年之前
父节点
当前提交
c415b3dce3
共有 1 个文件被更改,包括 1 次插入0 次删除
  1. 1 0
      arch/x86/kernel/reboot.c

+ 1 - 0
arch/x86/kernel/reboot.c

@@ -577,6 +577,7 @@ static struct notifier_block crash_nmi_nb = {
 void nmi_shootdown_cpus(nmi_shootdown_cb callback)
 void nmi_shootdown_cpus(nmi_shootdown_cb callback)
 {
 {
 	unsigned long msecs;
 	unsigned long msecs;
+	local_irq_disable();
 
 
 	/* Make a note of crashing cpu. Will be used in NMI callback.*/
 	/* Make a note of crashing cpu. Will be used in NMI callback.*/
 	crashing_cpu = safe_smp_processor_id();
 	crashing_cpu = safe_smp_processor_id();