aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/common.c
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2008-01-30 07:32:40 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:32:40 -0500
commit2b16a2353814a513cdb5c5c739b76a19d7ea39ce (patch)
treecaee8a54a0e85b4839078286114f4c9f920ac89e /arch/x86/kernel/cpu/common.c
parent68071a96655c883b316da9ef497f6dec8953529f (diff)
x86: move X86_FEATURE_CONSTANT_TSC into early cpu feature detection
Need this in the next patch in time_init and that happens early. This includes a minor fix on i386 where early_intel_workarounds() [which is now called early_init_intel] really executes early as the comments say. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/cpu/common.c')
-rw-r--r--arch/x86/kernel/cpu/common.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index e48832a6c2a9..dbb9142a8241 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -307,6 +307,15 @@ static void __init early_cpu_detect(void)
307 cpu_detect(c); 307 cpu_detect(c);
308 308
309 get_cpu_vendor(c, 1); 309 get_cpu_vendor(c, 1);
310
311 switch (c->x86_vendor) {
312 case X86_VENDOR_AMD:
313 early_init_amd(c);
314 break;
315 case X86_VENDOR_INTEL:
316 early_init_intel(c);
317 break;
318 }
310} 319}
311 320
312static void __cpuinit generic_identify(struct cpuinfo_x86 * c) 321static void __cpuinit generic_identify(struct cpuinfo_x86 * c)
@@ -364,8 +373,6 @@ static void __cpuinit generic_identify(struct cpuinfo_x86 * c)
364 init_scattered_cpuid_features(c); 373 init_scattered_cpuid_features(c);
365 } 374 }
366 375
367 early_intel_workaround(c);
368
369#ifdef CONFIG_X86_HT 376#ifdef CONFIG_X86_HT
370 c->phys_proc_id = (cpuid_ebx(1) >> 24) & 0xff; 377 c->phys_proc_id = (cpuid_ebx(1) >> 24) & 0xff;
371#endif 378#endif