فهرست منبع

x86: move vgetcpu mode probing to cpu detection

Take it out of time initialization and move it to
cpu detection time.

Signed-off-by: Glauber Costa <glommer@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Glauber Costa 16 سال پیش
والد
کامیت
e04d645f32
2فایلهای تغییر یافته به همراه12 افزوده شده و 4 حذف شده
  1. 12 0
      arch/x86/kernel/cpu/common.c
  2. 0 4
      arch/x86/kernel/time_64.c

+ 12 - 0
arch/x86/kernel/cpu/common.c

@@ -719,12 +719,24 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
 #endif
 }
 
+#ifdef CONFIG_X86_64
+static void vgetcpu_set_mode(void)
+{
+	if (cpu_has(&boot_cpu_data, X86_FEATURE_RDTSCP))
+		vgetcpu_mode = VGETCPU_RDTSCP;
+	else
+		vgetcpu_mode = VGETCPU_LSL;
+}
+#endif
+
 void __init identify_boot_cpu(void)
 {
 	identify_cpu(&boot_cpu_data);
 #ifdef CONFIG_X86_32
 	sysenter_setup();
 	enable_sep_cpu();
+#else
+	vgetcpu_set_mode();
 #endif
 }
 

+ 0 - 4
arch/x86/kernel/time_64.c

@@ -130,10 +130,6 @@ void __init hpet_time_init(void)
 void __init time_init(void)
 {
 	tsc_init();
-	if (cpu_has(&boot_cpu_data, X86_FEATURE_RDTSCP))
-		vgetcpu_mode = VGETCPU_RDTSCP;
-	else
-		vgetcpu_mode = VGETCPU_LSL;
 
 	late_time_init = choose_time_init();
 }