powerpc/603: Don't worry about _PAGE_USER in TLB miss handlers
authorChristophe Leroy <christophe.leroy@c-s.fr>
Thu, 21 Feb 2019 10:38:01 +0000 (10:38 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 21 Feb 2019 13:10:16 +0000 (00:10 +1100)
PP bits take user access into account, so no need to check _PAGE_USER
here. A DSI or ISI will be generated if needed.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/head_32.S

index b071f32..6b5cb75 100644 (file)
@@ -503,11 +503,9 @@ InstructionTLBMiss:
        cmplw   0,r1,r3
 #endif
        mfspr   r2, SPRN_SPRG_PGDIR
-       li      r1,_PAGE_USER|_PAGE_PRESENT|_PAGE_EXEC /* low addresses tested as user */
+       li      r1,_PAGE_PRESENT | _PAGE_EXEC
 #if defined(CONFIG_MODULES) || defined(CONFIG_DEBUG_PAGEALLOC)
        bge-    112f
-       mfspr   r2,SPRN_SRR1            /* and MSR_PR bit from SRR1 */
-       rlwimi  r1,r2,32-12,29,29       /* shift MSR_PR to _PAGE_USER posn */
        lis     r2, (swapper_pg_dir - PAGE_OFFSET)@ha   /* if kernel address, use */
        addi    r2, r2, (swapper_pg_dir - PAGE_OFFSET)@l        /* kernel page table */
 #endif
@@ -573,10 +571,8 @@ DataLoadTLBMiss:
        lis     r1,PAGE_OFFSET@h                /* check if kernel address */
        cmplw   0,r1,r3
        mfspr   r2, SPRN_SPRG_PGDIR
-       li      r1,_PAGE_USER|_PAGE_PRESENT /* low addresses tested as user */
+       li      r1, _PAGE_PRESENT
        bge-    112f
-       mfspr   r2,SPRN_SRR1            /* and MSR_PR bit from SRR1 */
-       rlwimi  r1,r2,32-12,29,29       /* shift MSR_PR to _PAGE_USER posn */
        lis     r2, (swapper_pg_dir - PAGE_OFFSET)@ha   /* if kernel address, use */
        addi    r2, r2, (swapper_pg_dir - PAGE_OFFSET)@l        /* kernel page table */
 112:   rlwimi  r2,r3,12,20,29          /* insert top 10 bits of address */
@@ -653,10 +649,8 @@ DataStoreTLBMiss:
        lis     r1,PAGE_OFFSET@h                /* check if kernel address */
        cmplw   0,r1,r3
        mfspr   r2, SPRN_SPRG_PGDIR
-       li      r1,_PAGE_RW|_PAGE_USER|_PAGE_PRESENT /* access flags */
+       li      r1, _PAGE_RW | _PAGE_PRESENT /* access flags */
        bge-    112f
-       mfspr   r2,SPRN_SRR1            /* and MSR_PR bit from SRR1 */
-       rlwimi  r1,r2,32-12,29,29       /* shift MSR_PR to _PAGE_USER posn */
        lis     r2, (swapper_pg_dir - PAGE_OFFSET)@ha   /* if kernel address, use */
        addi    r2, r2, (swapper_pg_dir - PAGE_OFFSET)@l        /* kernel page table */
 112:   rlwimi  r2,r3,12,20,29          /* insert top 10 bits of address */