]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
x86/cpu/intel: Replace early Family 6 checks with VFM ones
authorSohil Mehta <sohil.mehta@intel.com>
Wed, 19 Feb 2025 18:41:23 +0000 (18:41 +0000)
committerIngo Molnar <mingo@kernel.org>
Wed, 19 Mar 2025 10:19:41 +0000 (11:19 +0100)
Introduce names for some old pentium models and replace the x86_model
checks with VFM ones.

Signed-off-by: Sohil Mehta <sohil.mehta@intel.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Link: https://lore.kernel.org/r/20250219184133.816753-6-sohil.mehta@intel.com
arch/x86/include/asm/intel-family.h
arch/x86/kernel/cpu/intel.c

index f0e7ed012cfab8c2db9c0144c9f4e36302316346..58735bc3298adba42c9e75e6a0fd9a776cc31d39 100644 (file)
 /* Wildcard match so X86_MATCH_VFM(ANY) works */
 #define INTEL_ANY                      IFM(X86_FAMILY_ANY, X86_MODEL_ANY)
 
+/* Family 6 */
 #define INTEL_PENTIUM_PRO              IFM(6, 0x01)
+#define INTEL_PENTIUM_II_KLAMATH       IFM(6, 0x03)
 #define INTEL_PENTIUM_III_DESCHUTES    IFM(6, 0x05)
+#define INTEL_PENTIUM_III_TUALATIN     IFM(6, 0x0B)
+#define INTEL_PENTIUM_M_DOTHAN         IFM(6, 0x0D)
 
 #define INTEL_CORE_YONAH               IFM(6, 0x0E)
 
index 99b4c4074827d3db848fbc1f920cbc0a30eba2c3..a49615ffcacab9394753454c9e3139e8501e5056 100644 (file)
@@ -186,7 +186,7 @@ void intel_unlock_cpuid_leafs(struct cpuinfo_x86 *c)
        if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
                return;
 
-       if (c->x86 < 6 || (c->x86 == 6 && c->x86_model < 0xd))
+       if (c->x86_vfm < INTEL_PENTIUM_M_DOTHAN)
                return;
 
        /*
@@ -341,9 +341,7 @@ static void bsp_init_intel(struct cpuinfo_x86 *c)
 int ppro_with_ram_bug(void)
 {
        /* Uses data from early_cpu_detect now */
-       if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
-           boot_cpu_data.x86 == 6 &&
-           boot_cpu_data.x86_model == 1 &&
+       if (boot_cpu_data.x86_vfm == INTEL_PENTIUM_PRO &&
            boot_cpu_data.x86_stepping < 8) {
                pr_info("Pentium Pro with Errata#50 detected. Taking evasive action.\n");
                return 1;
@@ -404,7 +402,8 @@ static void intel_workarounds(struct cpuinfo_x86 *c)
         * SEP CPUID bug: Pentium Pro reports SEP but doesn't have it until
         * model 3 mask 3
         */
-       if ((c->x86<<8 | c->x86_model<<4 | c->x86_stepping) < 0x633)
+       if ((c->x86_vfm == INTEL_PENTIUM_II_KLAMATH && c->x86_stepping < 3) ||
+           c->x86_vfm < INTEL_PENTIUM_II_KLAMATH)
                clear_cpu_cap(c, X86_FEATURE_SEP);
 
        /*
@@ -606,7 +605,7 @@ static unsigned int intel_size_cache(struct cpuinfo_x86 *c, unsigned int size)
         * to determine which, so we use a boottime override
         * for the 512kb model, and assume 256 otherwise.
         */
-       if ((c->x86 == 6) && (c->x86_model == 11) && (size == 0))
+       if (c->x86_vfm == INTEL_PENTIUM_III_TUALATIN && size == 0)
                size = 256;
 
        /*