diff options
-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) | |||
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 | ||
423 | void smp_send_stop(void) | 424 | void smp_send_stop(void) |