aboutsummaryrefslogtreecommitdiff
path: root/arch/powerpc/kernel/head_booke.h
diff options
context:
space:
mode:
authorGravatar Christophe Leroy <christophe.leroy@csgroup.eu> 2021-03-12 12:50:32 +0000
committerGravatar Michael Ellerman <mpe@ellerman.id.au> 2021-03-29 13:22:07 +1100
commit0f2793e33db2e2f062968f2ca789b6826972b05b (patch)
tree91e6c1216c63566d06be3ff5822e5dcd7015a576 /arch/powerpc/kernel/head_booke.h
parentpowerpc/32: Refactor booke critical registers saving (diff)
downloadlinux-0f2793e33db2e2f062968f2ca789b6826972b05b.tar.gz
linux-0f2793e33db2e2f062968f2ca789b6826972b05b.tar.bz2
linux-0f2793e33db2e2f062968f2ca789b6826972b05b.zip
powerpc/32: Perform normal function call in exception entry
Now that the MMU is re-enabled before calling the transfer function, we don't need anymore that hack with the address of the handler and the return function sitting just after the 'bl' to the transfer fonction, that function is retrieving via a read relative to 'lr'. Do a regular call to the transfer function, then to the handler, then branch to the return function. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/73c00f3361ca280ef8fd7814c291bd1f5b6e2081.1615552867.git.christophe.leroy@csgroup.eu
Diffstat (limited to 'arch/powerpc/kernel/head_booke.h')
-rw-r--r--arch/powerpc/kernel/head_booke.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/powerpc/kernel/head_booke.h b/arch/powerpc/kernel/head_booke.h
index a127d5e7efb4..3707f49f0b78 100644
--- a/arch/powerpc/kernel/head_booke.h
+++ b/arch/powerpc/kernel/head_booke.h
@@ -322,9 +322,9 @@ label:
#define EXC_XFER_TEMPLATE(hdlr, trap, msr, tfer, ret) \
li r10,trap; \
stw r10,_TRAP(r11); \
- bl tfer; \
- .long hdlr; \
- .long ret
+ bl tfer; \
+ bl hdlr; \
+ b ret; \
#define EXC_XFER_STD(n, hdlr) \
EXC_XFER_TEMPLATE(hdlr, n, MSR_KERNEL, transfer_to_handler_full, \