diff options
Diffstat (limited to 'arch/x86/kernel/cpu/intel.c')
-rw-r--r-- | arch/x86/kernel/cpu/intel.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c index c5ac08124adc..959417b8cd64 100644 --- a/arch/x86/kernel/cpu/intel.c +++ b/arch/x86/kernel/cpu/intel.c | |||
@@ -176,9 +176,16 @@ static void __cpuinit init_intel(struct cpuinfo_x86 *c) | |||
176 | if (p) | 176 | if (p) |
177 | strcpy(c->x86_model_id, p); | 177 | strcpy(c->x86_model_id, p); |
178 | 178 | ||
179 | c->x86_max_cores = num_cpu_cores(c); | 179 | detect_extended_topology(c); |
180 | 180 | ||
181 | detect_ht(c); | 181 | if (!cpu_has(c, X86_FEATURE_XTOPOLOGY)) { |
182 | /* | ||
183 | * let's use the legacy cpuid vector 0x1 and 0x4 for topology | ||
184 | * detection. | ||
185 | */ | ||
186 | c->x86_max_cores = num_cpu_cores(c); | ||
187 | detect_ht(c); | ||
188 | } | ||
182 | 189 | ||
183 | /* Work around errata */ | 190 | /* Work around errata */ |
184 | Intel_errata_workarounds(c); | 191 | Intel_errata_workarounds(c); |