Commit 1f1c4d01 authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman
Browse files

powerpc/32: Add EXCEPTION_PROLOG_0 in head_32.h



This patch creates a macro for the very first part of
exception prolog, this will help when implementing
CONFIG_VMAP_STACK

Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/2249fe62f481121a180e9655ad2b998093f318f3.1576916812.git.christophe.leroy@c-s.fr
parent 39bccfd1
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -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)
+6 −3
Original line number Diff line number Diff line
@@ -10,13 +10,16 @@
 * 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
+2 −7
Original line number Diff line number Diff line
@@ -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