Building tqm8541_defconfig results in:

        arch/powerpc/mm/nohash/fsl_book3e.c: In function 'settlbcam':
        arch/powerpc/mm/nohash/fsl_book3e.c:126:40: error: '_PAGE_BAP_SX' 
undeclared (first use in this function)
          126 |         TLBCAM[index].MAS3 |= (flags & _PAGE_BAP_SX) ? MAS3_SX 
: 0;
              |                                        ^~~~~~~~~~~~
        arch/powerpc/mm/nohash/fsl_book3e.c:126:40: note: each undeclared 
identifier is reported only once for each function it appears in
        make[3]: *** [scripts/Makefile.build:277: 
arch/powerpc/mm/nohash/fsl_book3e.o] Error 1
        make[2]: *** [scripts/Makefile.build:540: arch/powerpc/mm/nohash] Error 
2
        make[1]: *** [scripts/Makefile.build:540: arch/powerpc/mm] Error 2
        make: *** [Makefile:1868: arch/powerpc] Error 2

This is because _PAGE_BAP_SX is not defined when using 32 bits PTE.

Now that _PAGE_EXEC contains both _PAGE_BAP_SX and _PAGE_BAP_UX, it can be used 
instead.

Reported-by: kernel test robot <l...@intel.com>
Fixes: 01116e6e98b0 ("powerpc/fsl_booke: Take exec flag into account when 
setting TLBCAMs")
Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu>
---
 arch/powerpc/mm/nohash/fsl_book3e.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/mm/nohash/fsl_book3e.c 
b/arch/powerpc/mm/nohash/fsl_book3e.c
index 978e0bcdfa2c..b231a54f540c 100644
--- a/arch/powerpc/mm/nohash/fsl_book3e.c
+++ b/arch/powerpc/mm/nohash/fsl_book3e.c
@@ -123,7 +123,6 @@ static void settlbcam(int index, unsigned long virt, 
phys_addr_t phys,
        TLBCAM[index].MAS2 |= (flags & _PAGE_ENDIAN) ? MAS2_E : 0;
 
        TLBCAM[index].MAS3 = (phys & MAS3_RPN) | MAS3_SR;
-       TLBCAM[index].MAS3 |= (flags & _PAGE_BAP_SX) ? MAS3_SX : 0;
        TLBCAM[index].MAS3 |= (flags & _PAGE_RW) ? MAS3_SW : 0;
        if (mmu_has_feature(MMU_FTR_BIG_PHYS))
                TLBCAM[index].MAS7 = (u64)phys >> 32;
@@ -133,6 +132,8 @@ static void settlbcam(int index, unsigned long virt, 
phys_addr_t phys,
                TLBCAM[index].MAS3 |= MAS3_UR;
                TLBCAM[index].MAS3 |= (flags & _PAGE_EXEC) ? MAS3_UX : 0;
                TLBCAM[index].MAS3 |= (flags & _PAGE_RW) ? MAS3_UW : 0;
+       } else {
+               TLBCAM[index].MAS3 |= (flags & _PAGE_EXEC) ? MAS3_SX : 0;
        }
 
        tlbcam_addrs[index].start = virt;
-- 
2.31.1

Reply via email to