diff options
author | Glauber Costa <gcosta@redhat.com> | 2008-03-03 18:12:49 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-17 17:40:55 +0200 |
commit | 3be5b49e8f1002bc562a2b4670093e4ebf27b4e9 (patch) | |
tree | a6ec2f5165c557dcd46ef926094897cf823a8bb9 | |
parent | x86: provide hlt_works function. (diff) | |
download | linux-3be5b49e8f1002bc562a2b4670093e4ebf27b4e9.tar.xz linux-3be5b49e8f1002bc562a2b4670093e4ebf27b4e9.zip |
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.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/smp_64.c | 5 |
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) */ 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/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) */ 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) |