diff options
author | Andi Kleen <ak@suse.de> | 2008-01-30 07:32:40 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:32:40 -0500 |
commit | 2b16a2353814a513cdb5c5c739b76a19d7ea39ce (patch) | |
tree | caee8a54a0e85b4839078286114f4c9f920ac89e /arch/x86/kernel/cpu/common.c | |
parent | 68071a96655c883b316da9ef497f6dec8953529f (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.c | 11 |
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 | ||
312 | static void __cpuinit generic_identify(struct cpuinfo_x86 * c) | 321 | static 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 |