Merge tag 'x86_cpu_for_v6.9_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-block.git] / arch / x86 / kernel / cpu / amd.c
index c82069e5f3419aa574ba187f259e3823d14d26de..9cfd4e99944dc062caf3d4f981efc1c90251d595 100644 (file)
@@ -828,7 +828,6 @@ static void init_amd_zen_common(void)
 
 static void init_amd_zen1(struct cpuinfo_x86 *c)
 {
-       init_amd_zen_common();
        fix_erratum_1386(c);
 
        /* Fix up CPUID bits, but only if not virtualised. */
@@ -882,7 +881,6 @@ static void zen2_zenbleed_check(struct cpuinfo_x86 *c)
 
 static void init_amd_zen2(struct cpuinfo_x86 *c)
 {
-       init_amd_zen_common();
        init_spectral_chicken(c);
        fix_erratum_1386(c);
        zen2_zenbleed_check(c);
@@ -890,8 +888,6 @@ static void init_amd_zen2(struct cpuinfo_x86 *c)
 
 static void init_amd_zen3(struct cpuinfo_x86 *c)
 {
-       init_amd_zen_common();
-
        if (!cpu_has(c, X86_FEATURE_HYPERVISOR)) {
                /*
                 * Zen3 (Fam19 model < 0x10) parts are not susceptible to
@@ -905,15 +901,12 @@ static void init_amd_zen3(struct cpuinfo_x86 *c)
 
 static void init_amd_zen4(struct cpuinfo_x86 *c)
 {
-       init_amd_zen_common();
-
        if (!cpu_has(c, X86_FEATURE_HYPERVISOR))
                msr_set_bit(MSR_ZEN4_BP_CFG, MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT);
 }
 
 static void init_amd_zen5(struct cpuinfo_x86 *c)
 {
-       init_amd_zen_common();
 }
 
 static void init_amd(struct cpuinfo_x86 *c)
@@ -950,6 +943,13 @@ static void init_amd(struct cpuinfo_x86 *c)
        case 0x16: init_amd_jg(c); break;
        }
 
+       /*
+        * Save up on some future enablement work and do common Zen
+        * settings.
+        */
+       if (c->x86 >= 0x17)
+               init_amd_zen_common();
+
        if (boot_cpu_has(X86_FEATURE_ZEN1))
                init_amd_zen1(c);
        else if (boot_cpu_has(X86_FEATURE_ZEN2))