aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/exceptions-64e.S
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2022-09-26 13:40:56 +1000
committerMichael Ellerman <mpe@ellerman.id.au>2022-09-28 19:22:12 +1000
commit8e93fb33c84f68db20c0bc2821334a4c54c3e251 (patch)
tree4059b8f1c36243441e504873b443362531e6a5f7 /arch/powerpc/kernel/exceptions-64e.S
parentpowerpc/64: switch asm helpers from GOT to TOC relative addressing (diff)
downloadlinux-dev-8e93fb33c84f68db20c0bc2821334a4c54c3e251.tar.xz
linux-dev-8e93fb33c84f68db20c0bc2821334a4c54c3e251.zip
powerpc/64: provide a helper macro to load r2 with the kernel TOC
A later change stops the kernel using r2 and loads it with a poison value. Provide a PACATOC loading abstraction which can hide this detail. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20220926034057.2360083-5-npiggin@gmail.com
Diffstat (limited to 'arch/powerpc/kernel/exceptions-64e.S')
-rw-r--r--arch/powerpc/kernel/exceptions-64e.S12
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
index 478127153529..ece1bd2a4a39 100644
--- a/arch/powerpc/kernel/exceptions-64e.S
+++ b/arch/powerpc/kernel/exceptions-64e.S
@@ -371,7 +371,7 @@ exc_##n##_common: \
ld r4,excf+EX_R11(r13); /* get back r11 */ \
mfspr r5,scratch; /* get back r13 */ \
SAVE_GPR(12, r1); /* save r12 in stackframe */ \
- ld r2,PACATOC(r13); /* get kernel TOC into r2 */ \
+ LOAD_PACA_TOC(); /* get kernel TOC into r2 */ \
mflr r6; /* save LR in stackframe */ \
mfctr r7; /* save CTR in stackframe */ \
mfspr r8,SPRN_XER; /* save XER in stackframe */ \
@@ -687,7 +687,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
beq+ 1f
#ifdef CONFIG_RELOCATABLE
- ld r15,PACATOC(r13)
+ __LOAD_PACA_TOC(r15)
ld r14,interrupt_base_book3e@got(r15)
ld r15,__end_interrupts@got(r15)
cmpld cr0,r10,r14
@@ -758,7 +758,7 @@ kernel_dbg_exc:
beq+ 1f
#ifdef CONFIG_RELOCATABLE
- ld r15,PACATOC(r13)
+ __LOAD_PACA_TOC(r15)
ld r14,interrupt_base_book3e@got(r15)
ld r15,__end_interrupts@got(r15)
cmpld cr0,r10,r14
@@ -883,7 +883,7 @@ kernel_dbg_exc:
.macro SEARCH_RESTART_TABLE
#ifdef CONFIG_RELOCATABLE
- ld r11,PACATOC(r13)
+ __LOAD_PACA_TOC(r11)
ld r14,__start___restart_table@got(r11)
ld r15,__stop___restart_table@got(r11)
#else
@@ -1061,7 +1061,7 @@ bad_stack_book3e:
std r11,0(r1)
ZEROIZE_GPR(12)
std r12,0(r11)
- ld r2,PACATOC(r13)
+ LOAD_PACA_TOC()
1: addi r3,r1,STACK_FRAME_OVERHEAD
bl kernel_bad_stack
b 1b
@@ -1302,7 +1302,7 @@ a2_tlbinit_after_linear_map:
/* Now we branch the new virtual address mapped by this entry */
#ifdef CONFIG_RELOCATABLE
- ld r5,PACATOC(r13)
+ __LOAD_PACA_TOC(r5)
ld r3,1f@got(r5)
#else
LOAD_REG_IMMEDIATE_SYM(r3, r5, 1f)