OSDN Git Service

powerpc/mm: Use symbolic constants for filtering SRR1 bits on ISIs
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 19 Jul 2017 04:49:28 +0000 (14:49 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 3 Aug 2017 06:06:44 +0000 (16:06 +1000)
This uses the newly defined constants for this rather than open-coded
numbers. There is a side effect on 64-bit which is to pass through
some of the new P9 bits which we didn't before.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/exceptions-64s.S
arch/powerpc/kernel/head_32.S
arch/powerpc/kernel/head_8xx.S

index 775ad0b..ab043a8 100644 (file)
@@ -541,7 +541,7 @@ EXC_COMMON_BEGIN(instruction_access_common)
        RECONCILE_IRQ_STATE(r10, r11)
        ld      r12,_MSR(r1)
        ld      r3,_NIP(r1)
-       andis.  r4,r12,0x5820
+       andis.  r4,r12,DSISR_BAD_FAULT_64S@h
        li      r5,0x400
        std     r3,_DAR(r1)
        std     r4,_DSISR(r1)
index b1aa011..8c54166 100644 (file)
@@ -403,13 +403,13 @@ DataAccess:
        DO_KVM  0x400
 InstructionAccess:
        EXCEPTION_PROLOG
-       andis.  r0,r9,0x4000            /* no pte found? */
+       andis.  r0,r9,SRR1_ISI_NOPT@h   /* no pte found? */
        beq     1f                      /* if so, try to put a PTE */
        li      r3,0                    /* into the hash table */
        mr      r4,r12                  /* SRR0 is fault address */
        bl      hash_page
 1:     mr      r4,r12
-       andis.  r5,r9,0x4820            /* Filter relevant SRR1 bits */
+       andis.  r5,r9,DSISR_SRR1_MATCH_32S@h /* Filter relevant SRR1 bits */
        EXC_XFER_LITE(0x400, handle_page_fault)
 
 /* External interrupt */
index da3afa2..07ddced 100644 (file)
@@ -569,8 +569,8 @@ _ENTRY(DTLBMiss_jmp)
 InstructionTLBError:
        EXCEPTION_PROLOG
        mr      r4,r12
-       andis.  r5,r9,0x4820            /* Filter relevant SRR1 bits */
-       andis.  r10,r9,0x4000
+       andis.  r5,r9,DSISR_SRR1_MATCH_32S@h /* Filter relevant SRR1 bits */
+       andis.  r10,r9,SRR1_ISI_NOPT@h
        beq+    1f
        tlbie   r4
 itlbie: