diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2016-07-26 15:29:30 +1000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2016-09-13 17:37:04 +1000 |
commit | d8d42b0511fefc78165ee9b4c2d95f5d6db7350d (patch) | |
tree | 20f5e5815a31801cffbc5eeab1de3e3227370b8e /arch/powerpc/include/asm/exception-64s.h | |
parent | 27510235dd2bb1ab01d27b01f0b6180eb47aa003 (diff) | |
download | op-kernel-dev-d8d42b0511fefc78165ee9b4c2d95f5d6db7350d.zip op-kernel-dev-d8d42b0511fefc78165ee9b4c2d95f5d6db7350d.tar.gz |
powerpc/64: Do load of PACAKBASE in LOAD_HANDLER
The LOAD_HANDLER macro requires that you have previously loaded "reg"
with PACAKBASE. Although that gives callers flexibility to get PACAKBASE
in some interesting way, none of the callers actually do that. So fold
the load of PACAKBASE into the macro, making it simpler for callers to
use correctly.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Reviewed-by: Nick Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/include/asm/exception-64s.h')
-rw-r--r-- | arch/powerpc/include/asm/exception-64s.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/powerpc/include/asm/exception-64s.h b/arch/powerpc/include/asm/exception-64s.h index 1a9afde..c260671 100644 --- a/arch/powerpc/include/asm/exception-64s.h +++ b/arch/powerpc/include/asm/exception-64s.h @@ -52,7 +52,6 @@ #ifdef CONFIG_RELOCATABLE #define __EXCEPTION_RELON_PROLOG_PSERIES_1(label, h) \ - ld r12,PACAKBASE(r13); /* get high part of &label */ \ mfspr r11,SPRN_##h##SRR0; /* save SRR0 */ \ LOAD_HANDLER(r12,label); \ mtctr r12; \ @@ -90,6 +89,7 @@ * that kernelbase be 64K aligned. */ #define LOAD_HANDLER(reg, label) \ + ld reg,PACAKBASE(r13); /* get high part of &label */ \ ori reg,reg,(label)-_stext; /* virt addr of handler ... */ /* Exception register prefixes */ @@ -175,7 +175,6 @@ END_FTR_SECTION_NESTED(ftr,ftr,943) __EXCEPTION_PROLOG_1(area, extra, vec) #define __EXCEPTION_PROLOG_PSERIES_1(label, h) \ - ld r12,PACAKBASE(r13); /* get high part of &label */ \ ld r10,PACAKMSR(r13); /* get MSR value for kernel */ \ mfspr r11,SPRN_##h##SRR0; /* save SRR0 */ \ LOAD_HANDLER(r12,label) \ |