From cfd683c3148309f8606b2cc92e7bca8dd98ecb61 Mon Sep 17 00:00:00 2001 From: Glauber Costa Date: Mon, 3 Mar 2008 14:12:49 -0300 Subject: [PATCH] --- yaml --- r: 88717 b: refs/heads/master c: 3be5b49e8f1002bc562a2b4670093e4ebf27b4e9 h: refs/heads/master i: 88715: cb6d21592eb12f23ab6b1c332e36f3d67a400639 v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/smp_32.c | 2 +- trunk/arch/x86/kernel/smp_64.c | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 3a79b790d652..bf99e667a431 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3d3f487c58ef1ece714af280b29411960908149c +refs/heads/master: 3be5b49e8f1002bc562a2b4670093e4ebf27b4e9 diff --git a/trunk/arch/x86/kernel/smp_32.c b/trunk/arch/x86/kernel/smp_32.c index e4a6b669a0b8..cde3a0ecd716 100644 --- a/trunk/arch/x86/kernel/smp_32.c +++ b/trunk/arch/x86/kernel/smp_32.c @@ -611,7 +611,7 @@ static void stop_this_cpu (void * dummy) */ cpu_clear(smp_processor_id(), cpu_online_map); disable_local_APIC(); - if (cpu_data(smp_processor_id()).hlt_works_ok) + if (hlt_works(smp_processor_id())) for(;;) halt(); for (;;); } diff --git a/trunk/arch/x86/kernel/smp_64.c b/trunk/arch/x86/kernel/smp_64.c index e4494e829dfa..4e1e2bce969c 100644 --- a/trunk/arch/x86/kernel/smp_64.c +++ b/trunk/arch/x86/kernel/smp_64.c @@ -416,8 +416,9 @@ static void stop_this_cpu(void *dummy) */ cpu_clear(smp_processor_id(), cpu_online_map); disable_local_APIC(); - for (;;) - halt(); + if (hlt_works(smp_processor_id())) + for (;;) halt(); + for (;;); } void smp_send_stop(void)