浏览代码

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>
Glauber Costa 17 年之前
父节点
当前提交
3be5b49e8f
共有 2 个文件被更改,包括 4 次插入3 次删除
  1. 1 1
      arch/x86/kernel/smp_32.c
  2. 3 2
      arch/x86/kernel/smp_64.c

+ 1 - 1
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 (;;);
 }

+ 3 - 2
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)