powerpc/book3s64/radix: Rename CPU_FTR_P9_TLBIE_BUG feature flag
authorAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Tue, 24 Sep 2019 03:52:52 +0000 (09:22 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 24 Sep 2019 10:58:47 +0000 (20:58 +1000)
Rename the #define to indicate this is related to store vs tlbie
ordering issue. In the next patch, we will be adding another feature
flag that is used to handles ERAT flush vs tlbie ordering issue.

Fixes: a5d4b5891c2f ("powerpc/mm: Fixup tlbie vs store ordering issue on POWER9")
Cc: stable@vger.kernel.org # v4.16+
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190924035254.24612-2-aneesh.kumar@linux.ibm.com
arch/powerpc/include/asm/cputable.h
arch/powerpc/kernel/dt_cpu_ftrs.c
arch/powerpc/kvm/book3s_hv_rm_mmu.c
arch/powerpc/mm/book3s64/hash_native.c
arch/powerpc/mm/book3s64/radix_tlb.c

index a1ebcbc3931f2afe7dd6667e353d809303b1bfb0..f080fba4861907c89a56f425639ede3c3dafd15e 100644 (file)
@@ -209,7 +209,7 @@ static inline void cpu_feature_keys_init(void) { }
 #define CPU_FTR_POWER9_DD2_1           LONG_ASM_CONST(0x0000080000000000)
 #define CPU_FTR_P9_TM_HV_ASSIST                LONG_ASM_CONST(0x0000100000000000)
 #define CPU_FTR_P9_TM_XER_SO_BUG       LONG_ASM_CONST(0x0000200000000000)
-#define CPU_FTR_P9_TLBIE_BUG           LONG_ASM_CONST(0x0000400000000000)
+#define CPU_FTR_P9_TLBIE_STQ_BUG       LONG_ASM_CONST(0x0000400000000000)
 #define CPU_FTR_P9_TIDR                        LONG_ASM_CONST(0x0000800000000000)
 
 #ifndef __ASSEMBLY__
@@ -457,7 +457,7 @@ static inline void cpu_feature_keys_init(void) { }
            CPU_FTR_CFAR | CPU_FTR_HVMODE | CPU_FTR_VMX_COPY | \
            CPU_FTR_DBELL | CPU_FTR_HAS_PPR | CPU_FTR_ARCH_207S | \
            CPU_FTR_TM_COMP | CPU_FTR_ARCH_300 | CPU_FTR_PKEY | \
-           CPU_FTR_P9_TLBIE_BUG | CPU_FTR_P9_TIDR)
+           CPU_FTR_P9_TLBIE_STQ_BUG | CPU_FTR_P9_TIDR)
 #define CPU_FTRS_POWER9_DD2_0 CPU_FTRS_POWER9
 #define CPU_FTRS_POWER9_DD2_1 (CPU_FTRS_POWER9 | CPU_FTR_POWER9_DD2_1)
 #define CPU_FTRS_POWER9_DD2_2 (CPU_FTRS_POWER9 | CPU_FTR_POWER9_DD2_1 | \
index 5fc1b527de46c37c3b92d6ba8789eaf0eab06850..a86486390c7012ea324459978b1435295b033bd9 100644 (file)
@@ -706,14 +706,14 @@ static __init void update_tlbie_feature_flag(unsigned long pvr)
                if ((pvr & 0xe000) == 0) {
                        /* Nimbus */
                        if ((pvr & 0xfff) < 0x203)
-                               cur_cpu_spec->cpu_features |= CPU_FTR_P9_TLBIE_BUG;
+                               cur_cpu_spec->cpu_features |= CPU_FTR_P9_TLBIE_STQ_BUG;
                } else if ((pvr & 0xc000) == 0) {
                        /* Cumulus */
                        if ((pvr & 0xfff) < 0x103)
-                               cur_cpu_spec->cpu_features |= CPU_FTR_P9_TLBIE_BUG;
+                               cur_cpu_spec->cpu_features |= CPU_FTR_P9_TLBIE_STQ_BUG;
                } else {
                        WARN_ONCE(1, "Unknown PVR");
-                       cur_cpu_spec->cpu_features |= CPU_FTR_P9_TLBIE_BUG;
+                       cur_cpu_spec->cpu_features |= CPU_FTR_P9_TLBIE_STQ_BUG;
                }
        }
 }
index 7186c65c61c9445608ab1e36bd8efde28382fc8b..cfdf232aac34f67e1413b08c2668136229ce7665 100644 (file)
@@ -451,7 +451,7 @@ static void do_tlbies(struct kvm *kvm, unsigned long *rbvalues,
                                     "r" (rbvalues[i]), "r" (kvm->arch.lpid));
                }
 
-               if (cpu_has_feature(CPU_FTR_P9_TLBIE_BUG)) {
+               if (cpu_has_feature(CPU_FTR_P9_TLBIE_STQ_BUG)) {
                        /*
                         * Need the extra ptesync to make sure we don't
                         * re-order the tlbie
index 90ab4f31e2b3f83ff1f13657f0004e95bd14db59..02568dae4695a245ed35f88d2e7b570200173fa2 100644 (file)
@@ -199,7 +199,7 @@ static inline unsigned long  ___tlbie(unsigned long vpn, int psize,
 
 static inline void fixup_tlbie(unsigned long vpn, int psize, int apsize, int ssize)
 {
-       if (cpu_has_feature(CPU_FTR_P9_TLBIE_BUG)) {
+       if (cpu_has_feature(CPU_FTR_P9_TLBIE_STQ_BUG)) {
                /* Need the extra ptesync to ensure we don't reorder tlbie*/
                asm volatile("ptesync": : :"memory");
                ___tlbie(vpn, psize, apsize, ssize);
index 631be42abd330611db0c8f67a7adc6a56dc0a57d..69fdc004d83f9a11056d8a141593c08fc73402ad 100644 (file)
@@ -201,7 +201,7 @@ static inline void fixup_tlbie(void)
        unsigned long pid = 0;
        unsigned long va = ((1UL << 52) - 1);
 
-       if (cpu_has_feature(CPU_FTR_P9_TLBIE_BUG)) {
+       if (cpu_has_feature(CPU_FTR_P9_TLBIE_STQ_BUG)) {
                asm volatile("ptesync": : :"memory");
                __tlbie_va(va, pid, mmu_get_ap(MMU_PAGE_64K), RIC_FLUSH_TLB);
        }
@@ -211,7 +211,7 @@ static inline void fixup_tlbie_lpid(unsigned long lpid)
 {
        unsigned long va = ((1UL << 52) - 1);
 
-       if (cpu_has_feature(CPU_FTR_P9_TLBIE_BUG)) {
+       if (cpu_has_feature(CPU_FTR_P9_TLBIE_STQ_BUG)) {
                asm volatile("ptesync": : :"memory");
                __tlbie_lpid_va(va, lpid, mmu_get_ap(MMU_PAGE_64K), RIC_FLUSH_TLB);
        }