Browse Source

x86: add reboot_force test to native_smp_send_stop

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>
Glauber Costa 17 years ago
parent
commit
321183c145
1 changed files with 7 additions and 2 deletions
  1. 7 2
      arch/x86/kernel/smp_32.c

+ 7 - 2
arch/x86/kernel/smp_32.c

@@ -24,6 +24,7 @@
 #include <asm/tlbflush.h>
 #include <asm/tlbflush.h>
 #include <asm/mmu_context.h>
 #include <asm/mmu_context.h>
 #include <mach_apic.h>
 #include <mach_apic.h>
+#include <asm/proto.h>
 
 
 /*
 /*
  *	Some notes on x86 processor bugs affecting SMP operation:
  *	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)
 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;
 	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);
 	local_irq_save(flags);
 	__smp_call_function(stop_this_cpu, NULL, 0, 0);
 	__smp_call_function(stop_this_cpu, NULL, 0, 0);
 	if (!nolock)
 	if (!nolock)