19 #include <linux/export.h>
28 #include <asm/tlbflush.h>
29 #include <asm/mmu_context.h>
113 static bool smp_no_nmi_ipi =
false;
120 static void native_smp_send_reschedule(
int cpu)
138 if (!alloc_cpumask_var(&allbutself,
GFP_ATOMIC)) {
146 if (cpumask_equal(mask, allbutself) &&
152 free_cpumask_var(allbutself);
155 static int smp_stop_nmi_callback(
unsigned int val,
struct pt_regs *
regs)
178 static void native_stop_other_cpus(
int wait)
230 pr_emerg(
"Shutting down cpus with NMI\n");
266 generic_smp_call_function_interrupt();
275 generic_smp_call_function_single_interrupt();
280 static int __init nonmi_ipi_setup(
char *
str)
282 smp_no_nmi_ipi =
true;
286 __setup(
"nonmi_ipi", nonmi_ipi_setup);
293 .stop_other_cpus = native_stop_other_cpus,
294 .smp_send_reschedule = native_smp_send_reschedule,