Re: [PATCH 3/9] powerpc/64s: SLB miss already has CTR saved for relocatable kernel
From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2017-06-19 11:45:10
From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2017-06-19 11:45:10
Nicholas Piggin [off-list ref] writes:
The EXCEPTION_PROLOG_1 used by SLB miss already saves CTR when the kernel is built with CONFIG_RELOCATABLE. So it does not have to be saved and reloaded when branching to slb_miss_realmode. It can be restored from the PACA as usual. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> --- arch/powerpc/kernel/exceptions-64s.S | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-)diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S index a4a71bce35d6..486e205cc762 100644 --- a/arch/powerpc/kernel/exceptions-64s.S +++ b/arch/powerpc/kernel/exceptions-64s.S@@ -519,7 +519,7 @@ EXC_REAL_BEGIN(data_access_slb, 0x380, 0x80) * because the distance from here to there depends on where * the kernel ends up being put. */ - mfctr r11 + /* CTR is saved if RELOCATABLE */ LOAD_HANDLER(r10, slb_miss_realmode) mtctr r10 bctr
AFAICS these can all use BRANCH_TO_COMMON(). So I'll drop all the comment additions from this and do a follow-up to switch to BRANCH_TO_COMMON(). cheers