powerpc/feature: Fix CPU_FTRS_ALWAYS by removing CPU_FTRS_GENERIC_32
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Tue, 3 Nov 2020 18:07:12 +0000 (18:07 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 19 Nov 2020 03:50:16 +0000 (14:50 +1100)
On 8xx, we get the following features:

[    0.000000] cpu_features      = 0x0000000000000100
[    0.000000]   possible        = 0x0000000000000120
[    0.000000]   always          = 0x0000000000000000

This is not correct. As CONFIG_PPC_8xx is mutually exclusive with all
other configurations, the three lines should be equal.

The problem is due to CPU_FTRS_GENERIC_32 which is taken when
CONFIG_BOOK3S_32 is NOT selected. This CPU_FTRS_GENERIC_32 is
pointless because there is no generic configuration supporting
all 32 bits but book3s/32.

Remove this pointless generic features definition to unbreak the
calculation of 'possible' features and 'always' features.

Fixes: 76bc080ef5a3 ("[POWERPC] Make default cputable entries reflect selected CPU family")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/76a85f30bf981d1aeaae00df99321235494da254.1604426550.git.christophe.leroy@csgroup.eu
arch/powerpc/include/asm/cputable.h

index 3d2f94a..5e31960 100644 (file)
@@ -409,7 +409,6 @@ static inline void cpu_feature_keys_init(void) { }
            CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \
            CPU_FTR_DEBUG_LVL_EXC | CPU_FTR_EMB_HV | CPU_FTR_ALTIVEC_COMP | \
            CPU_FTR_CELL_TB_BUG | CPU_FTR_SMT)
-#define CPU_FTRS_GENERIC_32    (CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN)
 
 /* 64-bit CPUs */
 #define CPU_FTRS_PPC970        (CPU_FTR_LWSYNC | \
@@ -520,8 +519,6 @@ enum {
            CPU_FTRS_7447 | CPU_FTRS_7447A | CPU_FTRS_82XX |
            CPU_FTRS_G2_LE | CPU_FTRS_E300 | CPU_FTRS_E300C2 |
            CPU_FTRS_CLASSIC32 |
-#else
-           CPU_FTRS_GENERIC_32 |
 #endif
 #ifdef CONFIG_PPC_8xx
            CPU_FTRS_8XX |
@@ -596,8 +593,6 @@ enum {
            CPU_FTRS_7447 & CPU_FTRS_7447A & CPU_FTRS_82XX &
            CPU_FTRS_G2_LE & CPU_FTRS_E300 & CPU_FTRS_E300C2 &
            CPU_FTRS_CLASSIC32 &
-#else
-           CPU_FTRS_GENERIC_32 &
 #endif
 #ifdef CONFIG_PPC_8xx
            CPU_FTRS_8XX &