On Sat, 4 Oct 2014, Bryan O'Donoghue wrote: > @@ -381,7 +381,18 @@ static void init_intel(struct cpuinfo_x86 *c) > #endif > } > > - l2 = init_intel_cacheinfo(c); > + /* Detect legacy cache sizes */ > + cpu_detect_cache_sizes(c); > + > + /* > + * If cache_size has not been initialized via legacy_cache() > + * probe it via init_intel_cacheinfo(). > + */ > + if (c->x86_cache_size == 0) > + l2 = init_intel_cacheinfo(c); > + else > + l2 = c->x86_cache_size;
Looking a bit deeper. This wont work because cpu_detect_cache_sizes() will set c->x86_cache_size for all cpus with extended_cpuid_level >= 0x80000005, which is the case for everything modern. So this results in init_intel_cacheinfo() not being called anymore. So we might need the following conditional: l2 = init_intel_cacheinfo(c); + if (!c->x86_cache_size) { + cpu_detect_cache_sizes(c); + l2 = c->x86_cache_size; + } If that does not work because c->x86_cache_size is not 0 after init_intel_cacheinfo() we really need to make it family/model dependent. Thanks, tglx -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/