diff options
Diffstat (limited to 'arch/i386/kernel')
-rw-r--r-- | arch/i386/kernel/cpu/common.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/arch/i386/kernel/cpu/common.c b/arch/i386/kernel/cpu/common.c index 170400879f44..15aee26ec2b6 100644 --- a/arch/i386/kernel/cpu/common.c +++ b/arch/i386/kernel/cpu/common.c | |||
@@ -204,7 +204,10 @@ static int __devinit have_cpuid_p(void) | |||
204 | 204 | ||
205 | /* Do minimum CPU detection early. | 205 | /* Do minimum CPU detection early. |
206 | Fields really needed: vendor, cpuid_level, family, model, mask, cache alignment. | 206 | Fields really needed: vendor, cpuid_level, family, model, mask, cache alignment. |
207 | The others are not touched to avoid unwanted side effects. */ | 207 | The others are not touched to avoid unwanted side effects. |
208 | |||
209 | WARNING: this function is only called on the BP. Don't add code here | ||
210 | that is supposed to run on all CPUs. */ | ||
208 | static void __init early_cpu_detect(void) | 211 | static void __init early_cpu_detect(void) |
209 | { | 212 | { |
210 | struct cpuinfo_x86 *c = &boot_cpu_data; | 213 | struct cpuinfo_x86 *c = &boot_cpu_data; |
@@ -236,12 +239,6 @@ static void __init early_cpu_detect(void) | |||
236 | if (cap0 & (1<<19)) | 239 | if (cap0 & (1<<19)) |
237 | c->x86_cache_alignment = ((misc >> 8) & 0xff) * 8; | 240 | c->x86_cache_alignment = ((misc >> 8) & 0xff) * 8; |
238 | } | 241 | } |
239 | |||
240 | early_intel_workaround(c); | ||
241 | |||
242 | #ifdef CONFIG_X86_HT | ||
243 | phys_proc_id[smp_processor_id()] = (cpuid_ebx(1) >> 24) & 0xff; | ||
244 | #endif | ||
245 | } | 242 | } |
246 | 243 | ||
247 | void __devinit generic_identify(struct cpuinfo_x86 * c) | 244 | void __devinit generic_identify(struct cpuinfo_x86 * c) |
@@ -289,6 +286,12 @@ void __devinit generic_identify(struct cpuinfo_x86 * c) | |||
289 | get_model_name(c); /* Default name */ | 286 | get_model_name(c); /* Default name */ |
290 | } | 287 | } |
291 | } | 288 | } |
289 | |||
290 | early_intel_workaround(c); | ||
291 | |||
292 | #ifdef CONFIG_X86_HT | ||
293 | phys_proc_id[smp_processor_id()] = (cpuid_ebx(1) >> 24) & 0xff; | ||
294 | #endif | ||
292 | } | 295 | } |
293 | 296 | ||
294 | static void __devinit squash_the_stupid_serial_number(struct cpuinfo_x86 *c) | 297 | static void __devinit squash_the_stupid_serial_number(struct cpuinfo_x86 *c) |