|
@@ -370,6 +370,17 @@ static void init_intel(struct cpuinfo_x86 *c)
|
|
|
*/
|
|
|
detect_extended_topology(c);
|
|
|
|
|
|
+ if (!cpu_has(c, X86_FEATURE_XTOPOLOGY)) {
|
|
|
+ /*
|
|
|
+ * let's use the legacy cpuid vector 0x1 and 0x4 for topology
|
|
|
+ * detection.
|
|
|
+ */
|
|
|
+ c->x86_max_cores = intel_num_cpu_cores(c);
|
|
|
+#ifdef CONFIG_X86_32
|
|
|
+ detect_ht(c);
|
|
|
+#endif
|
|
|
+ }
|
|
|
+
|
|
|
l2 = init_intel_cacheinfo(c);
|
|
|
if (c->cpuid_level > 9) {
|
|
|
unsigned eax = cpuid_eax(10);
|
|
@@ -438,17 +449,6 @@ static void init_intel(struct cpuinfo_x86 *c)
|
|
|
set_cpu_cap(c, X86_FEATURE_P3);
|
|
|
#endif
|
|
|
|
|
|
- if (!cpu_has(c, X86_FEATURE_XTOPOLOGY)) {
|
|
|
- /*
|
|
|
- * let's use the legacy cpuid vector 0x1 and 0x4 for topology
|
|
|
- * detection.
|
|
|
- */
|
|
|
- c->x86_max_cores = intel_num_cpu_cores(c);
|
|
|
-#ifdef CONFIG_X86_32
|
|
|
- detect_ht(c);
|
|
|
-#endif
|
|
|
- }
|
|
|
-
|
|
|
/* Work around errata */
|
|
|
srat_detect_node(c);
|
|
|
|