diff options
Diffstat (limited to 'arch/x86/kernel/cpu/intel.c')
-rw-r--r-- | arch/x86/kernel/cpu/intel.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c index a80029035bf2..9483ee5b3991 100644 --- a/arch/x86/kernel/cpu/intel.c +++ b/arch/x86/kernel/cpu/intel.c | |||
@@ -253,7 +253,7 @@ static void intel_workarounds(struct cpuinfo_x86 *c) | |||
253 | */ | 253 | */ |
254 | if (cpu_has_apic && (c->x86<<8 | c->x86_model<<4) == 0x520 && | 254 | if (cpu_has_apic && (c->x86<<8 | c->x86_model<<4) == 0x520 && |
255 | (c->x86_mask < 0x6 || c->x86_mask == 0xb)) | 255 | (c->x86_mask < 0x6 || c->x86_mask == 0xb)) |
256 | set_cpu_cap(c, X86_FEATURE_11AP); | 256 | set_cpu_bug(c, X86_BUG_11AP); |
257 | 257 | ||
258 | 258 | ||
259 | #ifdef CONFIG_X86_INTEL_USERCOPY | 259 | #ifdef CONFIG_X86_INTEL_USERCOPY |
@@ -370,6 +370,17 @@ static void init_intel(struct cpuinfo_x86 *c) | |||
370 | */ | 370 | */ |
371 | detect_extended_topology(c); | 371 | detect_extended_topology(c); |
372 | 372 | ||
373 | if (!cpu_has(c, X86_FEATURE_XTOPOLOGY)) { | ||
374 | /* | ||
375 | * let's use the legacy cpuid vector 0x1 and 0x4 for topology | ||
376 | * detection. | ||
377 | */ | ||
378 | c->x86_max_cores = intel_num_cpu_cores(c); | ||
379 | #ifdef CONFIG_X86_32 | ||
380 | detect_ht(c); | ||
381 | #endif | ||
382 | } | ||
383 | |||
373 | l2 = init_intel_cacheinfo(c); | 384 | l2 = init_intel_cacheinfo(c); |
374 | if (c->cpuid_level > 9) { | 385 | if (c->cpuid_level > 9) { |
375 | unsigned eax = cpuid_eax(10); | 386 | unsigned eax = cpuid_eax(10); |
@@ -391,7 +402,7 @@ static void init_intel(struct cpuinfo_x86 *c) | |||
391 | 402 | ||
392 | if (c->x86 == 6 && cpu_has_clflush && | 403 | if (c->x86 == 6 && cpu_has_clflush && |
393 | (c->x86_model == 29 || c->x86_model == 46 || c->x86_model == 47)) | 404 | (c->x86_model == 29 || c->x86_model == 46 || c->x86_model == 47)) |
394 | set_cpu_cap(c, X86_FEATURE_CLFLUSH_MONITOR); | 405 | set_cpu_bug(c, X86_BUG_CLFLUSH_MONITOR); |
395 | 406 | ||
396 | #ifdef CONFIG_X86_64 | 407 | #ifdef CONFIG_X86_64 |
397 | if (c->x86 == 15) | 408 | if (c->x86 == 15) |
@@ -438,17 +449,6 @@ static void init_intel(struct cpuinfo_x86 *c) | |||
438 | set_cpu_cap(c, X86_FEATURE_P3); | 449 | set_cpu_cap(c, X86_FEATURE_P3); |
439 | #endif | 450 | #endif |
440 | 451 | ||
441 | if (!cpu_has(c, X86_FEATURE_XTOPOLOGY)) { | ||
442 | /* | ||
443 | * let's use the legacy cpuid vector 0x1 and 0x4 for topology | ||
444 | * detection. | ||
445 | */ | ||
446 | c->x86_max_cores = intel_num_cpu_cores(c); | ||
447 | #ifdef CONFIG_X86_32 | ||
448 | detect_ht(c); | ||
449 | #endif | ||
450 | } | ||
451 | |||
452 | /* Work around errata */ | 452 | /* Work around errata */ |
453 | srat_detect_node(c); | 453 | srat_detect_node(c); |
454 | 454 | ||