aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/kernel-parameters.txt4
-rw-r--r--arch/x86/kernel/smp.c13
2 files changed, 17 insertions, 0 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index a0c5c5f4fce6..b4339e5a50da 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1796,6 +1796,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
1796 nomfgpt [X86-32] Disable Multi-Function General Purpose 1796 nomfgpt [X86-32] Disable Multi-Function General Purpose
1797 Timer usage (for AMD Geode machines). 1797 Timer usage (for AMD Geode machines).
1798 1798
1799 nonmi_ipi [X86] Disable using NMI IPIs during panic/reboot to
1800 shutdown the other cpus. Instead use the REBOOT_VECTOR
1801 irq.
1802
1799 nopat [X86] Disable PAT (page attribute table extension of 1803 nopat [X86] Disable PAT (page attribute table extension of
1800 pagetables) support. 1804 pagetables) support.
1801 1805
diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
index e72b1754a2d7..113acda5879e 100644
--- a/arch/x86/kernel/smp.c
+++ b/arch/x86/kernel/smp.c
@@ -249,6 +249,11 @@ static void native_irq_stop_other_cpus(int wait)
249 local_irq_restore(flags); 249 local_irq_restore(flags);
250} 250}
251 251
252static void native_smp_disable_nmi_ipi(void)
253{
254 smp_ops.stop_other_cpus = native_irq_stop_other_cpus;
255}
256
252/* 257/*
253 * Reschedule call back. 258 * Reschedule call back.
254 */ 259 */
@@ -280,6 +285,14 @@ void smp_call_function_single_interrupt(struct pt_regs *regs)
280 irq_exit(); 285 irq_exit();
281} 286}
282 287
288static int __init nonmi_ipi_setup(char *str)
289{
290 native_smp_disable_nmi_ipi();
291 return 1;
292}
293
294__setup("nonmi_ipi", nonmi_ipi_setup);
295
283struct smp_ops smp_ops = { 296struct smp_ops smp_ops = {
284 .smp_prepare_boot_cpu = native_smp_prepare_boot_cpu, 297 .smp_prepare_boot_cpu = native_smp_prepare_boot_cpu,
285 .smp_prepare_cpus = native_smp_prepare_cpus, 298 .smp_prepare_cpus = native_smp_prepare_cpus,