aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlauber Costa <gcosta@redhat.com>2008-03-03 12:12:49 -0500
committerIngo Molnar <mingo@elte.hu>2008-04-17 11:40:55 -0400
commit3be5b49e8f1002bc562a2b4670093e4ebf27b4e9 (patch)
treea6ec2f5165c557dcd46ef926094897cf823a8bb9
parent3d3f487c58ef1ece714af280b29411960908149c (diff)
x86: make stop_this_cpu looks exactly equal in both arches
with the hlt_works change, it is possible to have i386 and x86_64 stop_this_cpu() looking exactly the same. They can, after that, be merged. Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--arch/x86/kernel/smp_32.c2
-rw-r--r--arch/x86/kernel/smp_64.c5
2 files changed, 4 insertions, 3 deletions
diff --git a/arch/x86/kernel/smp_32.c b/arch/x86/kernel/smp_32.c
index e4a6b669a0b8..cde3a0ecd716 100644
--- a/arch/x86/kernel/smp_32.c
+++ b/arch/x86/kernel/smp_32.c
@@ -611,7 +611,7 @@ static void stop_this_cpu (void * dummy)
611 */ 611 */
612 cpu_clear(smp_processor_id(), cpu_online_map); 612 cpu_clear(smp_processor_id(), cpu_online_map);
613 disable_local_APIC(); 613 disable_local_APIC();
614 if (cpu_data(smp_processor_id()).hlt_works_ok) 614 if (hlt_works(smp_processor_id()))
615 for(;;) halt(); 615 for(;;) halt();
616 for (;;); 616 for (;;);
617} 617}
diff --git a/arch/x86/kernel/smp_64.c b/arch/x86/kernel/smp_64.c
index e4494e829dfa..4e1e2bce969c 100644
--- a/arch/x86/kernel/smp_64.c
+++ b/arch/x86/kernel/smp_64.c
@@ -416,8 +416,9 @@ static void stop_this_cpu(void *dummy)
416 */ 416 */
417 cpu_clear(smp_processor_id(), cpu_online_map); 417 cpu_clear(smp_processor_id(), cpu_online_map);
418 disable_local_APIC(); 418 disable_local_APIC();
419 for (;;) 419 if (hlt_works(smp_processor_id()))
420 halt(); 420 for (;;) halt();
421 for (;;);
421} 422}
422 423
423void smp_send_stop(void) 424void smp_send_stop(void)