Commit d2e8ff9f authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman
Browse files

powerpc: add a definition for the marker offset within the interrupt frame



Define a constant rather than open-code the offset for the
"regs" marker.

Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221127124942.1665522-9-npiggin@gmail.com
parent c03be0a3
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -125,6 +125,7 @@ struct pt_regs
#define STACK_INT_FRAME_SIZE	(sizeof(struct pt_regs) + \
				 STACK_FRAME_OVERHEAD + KERNEL_REDZONE_SIZE)
#define STACK_INT_FRAME_REGS	STACK_FRAME_OVERHEAD
#define STACK_INT_FRAME_MARKER	(STACK_FRAME_OVERHEAD - 16)
#define STACK_FRAME_MARKER	12

#ifdef CONFIG_PPC64_ELF_ABI_V2
@@ -145,6 +146,7 @@ struct pt_regs
#define STACK_FRAME_LR_SAVE	1	/* Location of LR in stack frame */
#define STACK_INT_FRAME_SIZE	(sizeof(struct pt_regs) + STACK_FRAME_OVERHEAD)
#define STACK_INT_FRAME_REGS	STACK_FRAME_OVERHEAD
#define STACK_INT_FRAME_MARKER	(STACK_FRAME_OVERHEAD - 8)
#define STACK_FRAME_MARKER	2
#define STACK_FRAME_MIN_SIZE	STACK_FRAME_OVERHEAD

+1 −1
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ transfer_to_syscall:
	addi	r12,r12,STACK_FRAME_REGS_MARKER@l
	stw	r9,_MSR(r1)
	li	r2, INTERRUPT_SYSCALL
	stw	r12,8(r1)
	stw	r12,STACK_INT_FRAME_MARKER(r1)
	stw	r2,_TRAP(r1)
	SAVE_GPR(0, r1)
	SAVE_GPRS(3, 8, r1)
+1 −1
Original line number Diff line number Diff line
@@ -391,7 +391,7 @@ exc_##n##_common: \
	std	r10,_CCR(r1);		/* store orig CR in stackframe */   \
	std	r9,GPR1(r1);		/* store stack frame back link */   \
	std	r11,SOFTE(r1);		/* and save it to stackframe */     \
	std	r12,STACK_FRAME_OVERHEAD-16(r1); /* mark the frame */	    \
	std	r12,STACK_INT_FRAME_MARKER(r1); /* mark the frame */	    \
	std	r3,_TRAP(r1);		/* set trap number		*/  \
	std	r0,RESULT(r1);		/* clear regs->result */	    \
	SAVE_NVGPRS(r1);
+1 −1
Original line number Diff line number Diff line
@@ -591,7 +591,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_CFAR)
	li	r10,0
	LOAD_REG_IMMEDIATE(r11, STACK_FRAME_REGS_MARKER)
	std	r10,RESULT(r1)		/* clear regs->result		*/
	std	r11,STACK_FRAME_OVERHEAD-16(r1) /* mark the frame	*/
	std	r11,STACK_INT_FRAME_MARKER(r1) /* mark the frame	*/
.endm

/*
+1 −1
Original line number Diff line number Diff line
@@ -112,7 +112,7 @@ _ASM_NOKPROBE_SYMBOL(\name\()_virt)
	stw	r0,GPR0(r1)
	lis	r10,STACK_FRAME_REGS_MARKER@ha /* exception frame marker */
	addi	r10,r10,STACK_FRAME_REGS_MARKER@l
	stw	r10,8(r1)
	stw	r10,STACK_INT_FRAME_MARKER(r1)
	li	r10, \trapno
	stw	r10,_TRAP(r1)
	SAVE_GPRS(3, 8, r1)
Loading