]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/x86/kernel/smp.c
x86, NMI: Add knob to disable using NMI IPIs to stop cpus
[karo-tx-linux.git] / arch / x86 / kernel / smp.c
index e72b1754a2d720dc8d5e7666c2684b8fc8452cff..113acda5879eb9dd88550ca42ce16cea28195d0f 100644 (file)
@@ -249,6 +249,11 @@ static void native_irq_stop_other_cpus(int wait)
        local_irq_restore(flags);
 }
 
+static void native_smp_disable_nmi_ipi(void)
+{
+       smp_ops.stop_other_cpus = native_irq_stop_other_cpus;
+}
+
 /*
  * Reschedule call back.
  */
@@ -280,6 +285,14 @@ void smp_call_function_single_interrupt(struct pt_regs *regs)
        irq_exit();
 }
 
+static int __init nonmi_ipi_setup(char *str)
+{
+        native_smp_disable_nmi_ipi();
+        return 1;
+}
+
+__setup("nonmi_ipi", nonmi_ipi_setup);
+
 struct smp_ops smp_ops = {
        .smp_prepare_boot_cpu   = native_smp_prepare_boot_cpu,
        .smp_prepare_cpus       = native_smp_prepare_cpus,