x86: make stop_this_cpu looks exactly equal in both arches
authorGlauber Costa <gcosta@redhat.com>
Mon, 3 Mar 2008 17:12:49 +0000 (14:12 -0300)
committerIngo Molnar <mingo@elte.hu>
Thu, 17 Apr 2008 15:40:55 +0000 (17:40 +0200)
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>
arch/x86/kernel/smp_32.c
arch/x86/kernel/smp_64.c

index e4a6b669a0b824fbceb82169aba5535f02eab57a..cde3a0ecd7161a1d0323637131ebd850bdfca82f 100644 (file)
@@ -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 (;;);
 }
index e4494e829dfadb39f87c8f7f728c76b93358bcf5..4e1e2bce969ceb0317dd360bf72d6c32641a8473 100644 (file)
@@ -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)