]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
powerpc/32: Add EXCEPTION_PROLOG_0 in head_32.h
authorChristophe Leroy <christophe.leroy@c-s.fr>
Sat, 21 Dec 2019 08:32:23 +0000 (08:32 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 26 Jan 2020 11:15:08 +0000 (22:15 +1100)
This patch creates a macro for the very first part of
exception prolog, this will help when implementing
CONFIG_VMAP_STACK

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/2249fe62f481121a180e9655ad2b998093f318f3.1576916812.git.christophe.leroy@c-s.fr
arch/powerpc/kernel/head_32.S
arch/powerpc/kernel/head_32.h
arch/powerpc/kernel/head_8xx.S

index 4a24f8f026c797b5f83dabb4a06f0ebf896c8365..9e868567b7165a9fd2f7a06a7aa618c460d3ff7f 100644 (file)
@@ -272,9 +272,7 @@ __secondary_hold_acknowledge:
  */
        . = 0x200
        DO_KVM  0x200
-       mtspr   SPRN_SPRG_SCRATCH0,r10
-       mtspr   SPRN_SPRG_SCRATCH1,r11
-       mfcr    r10
+       EXCEPTION_PROLOG_0
 #ifdef CONFIG_PPC_CHRP
        mfspr   r11, SPRN_SPRG_THREAD
        lwz     r11, RTAS_SP(r11)
index b2ca8c9ffd8becd95d3489cad446f4bcfaf20053..8e345f8d4b0e1535a38e1e1a6dce6fd6a9a1e52c 100644 (file)
  * We assume sprg3 has the physical address of the current
  * task's thread_struct.
  */
-
 .macro EXCEPTION_PROLOG
+       EXCEPTION_PROLOG_0
+       EXCEPTION_PROLOG_1
+       EXCEPTION_PROLOG_2
+.endm
+
+.macro EXCEPTION_PROLOG_0
        mtspr   SPRN_SPRG_SCRATCH0,r10
        mtspr   SPRN_SPRG_SCRATCH1,r11
        mfcr    r10
-       EXCEPTION_PROLOG_1
-       EXCEPTION_PROLOG_2
 .endm
 
 .macro EXCEPTION_PROLOG_1
index 19f583e18402e2b60cf1ebb52c8e0951789a5747..dac7c0a34eea48c23868ff6611cfc10c01f6eee7 100644 (file)
@@ -494,10 +494,7 @@ InstructionTLBError:
  */
        . = 0x1400
 DataTLBError:
-       mtspr   SPRN_SPRG_SCRATCH0, r10
-       mtspr   SPRN_SPRG_SCRATCH1, r11
-       mfcr    r10
-
+       EXCEPTION_PROLOG_0
        mfspr   r11, SPRN_DAR
        cmpwi   cr0, r11, RPN_PATTERN
        beq-    FixupDAR        /* must be a buggy dcbX, icbi insn. */
@@ -530,9 +527,7 @@ DARFixed:/* Return from dcbx instruction bug workaround */
  */
        . = 0x1c00
 DataBreakpoint:
-       mtspr   SPRN_SPRG_SCRATCH0, r10
-       mtspr   SPRN_SPRG_SCRATCH1, r11
-       mfcr    r10
+       EXCEPTION_PROLOG_0
        mfspr   r11, SPRN_SRR0
        cmplwi  cr0, r11, (.Ldtlbie - PAGE_OFFSET)@l
        cmplwi  cr7, r11, (.Litlbie - PAGE_OFFSET)@l