x86: add reboot_force test to native_smp_send_stop
authorGlauber Costa <gcosta@redhat.com>
Mon, 3 Mar 2008 17:12:50 +0000 (14:12 -0300)
committerIngo Molnar <mingo@elte.hu>
Thu, 17 Apr 2008 15:40:55 +0000 (17:40 +0200)
This can be safely added to i386. After that,
functions look exactly the same for both arches

Signed-off-by: Glauber Costa <gcosta@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/smp_32.c

index cde3a0ecd7161a1d0323637131ebd850bdfca82f..8be3e091dcd046babec9caf0c23df4ebe95abb7a 100644 (file)
@@ -24,6 +24,7 @@
 #include <asm/tlbflush.h>
 #include <asm/mmu_context.h>
 #include <mach_apic.h>
+#include <asm/proto.h>
 
 /*
  *     Some notes on x86 processor bugs affecting SMP operation:
@@ -622,10 +623,14 @@ static void stop_this_cpu (void * dummy)
 
 static void native_smp_send_stop(void)
 {
-       /* Don't deadlock on the call lock in panic */
-       int nolock = !spin_trylock(&call_lock);
+       int nolock;
        unsigned long flags;
 
+       if (reboot_force)
+               return;
+
+       /* Don't deadlock on the call lock in panic */
+       nolock = !spin_trylock(&call_lock);
        local_irq_save(flags);
        __smp_call_function(stop_this_cpu, NULL, 0, 0);
        if (!nolock)