powerpc/64s: Use BRANCH_TO_COMMON() for slb_miss_realmode
All the callers of slb_miss_realmode currently open code the #ifndef CONFIG_RELOCATABLE check and the branch via CTR in the RELOCATABLE case. We have a macro to do this, BRANCH_TO_COMMON(), so use it. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
This commit is contained in:
Родитель
8568f1e026
Коммит
b102063b47
|
@ -514,18 +514,7 @@ EXC_REAL_BEGIN(data_access_slb, 0x380, 0x80)
|
|||
mfspr r3,SPRN_DAR
|
||||
mfspr r11,SPRN_SRR1
|
||||
crset 4*cr6+eq
|
||||
#ifndef CONFIG_RELOCATABLE
|
||||
b slb_miss_realmode
|
||||
#else
|
||||
/*
|
||||
* We can't just use a direct branch to slb_miss_realmode
|
||||
* because the distance from here to there depends on where
|
||||
* the kernel ends up being put.
|
||||
*/
|
||||
LOAD_HANDLER(r10, slb_miss_realmode)
|
||||
mtctr r10
|
||||
bctr
|
||||
#endif
|
||||
BRANCH_TO_COMMON(r10, slb_miss_realmode)
|
||||
EXC_REAL_END(data_access_slb, 0x380, 0x80)
|
||||
|
||||
EXC_VIRT_BEGIN(data_access_slb, 0x4380, 0x80)
|
||||
|
@ -536,18 +525,7 @@ EXC_VIRT_BEGIN(data_access_slb, 0x4380, 0x80)
|
|||
mfspr r3,SPRN_DAR
|
||||
mfspr r11,SPRN_SRR1
|
||||
crset 4*cr6+eq
|
||||
#ifndef CONFIG_RELOCATABLE
|
||||
b slb_miss_realmode
|
||||
#else
|
||||
/*
|
||||
* We can't just use a direct branch to slb_miss_realmode
|
||||
* because the distance from here to there depends on where
|
||||
* the kernel ends up being put.
|
||||
*/
|
||||
LOAD_HANDLER(r10, slb_miss_realmode)
|
||||
mtctr r10
|
||||
bctr
|
||||
#endif
|
||||
BRANCH_TO_COMMON(r10, slb_miss_realmode)
|
||||
EXC_VIRT_END(data_access_slb, 0x4380, 0x80)
|
||||
TRAMP_KVM_SKIP(PACA_EXSLB, 0x380)
|
||||
|
||||
|
@ -580,13 +558,7 @@ EXC_REAL_BEGIN(instruction_access_slb, 0x480, 0x80)
|
|||
mfspr r3,SPRN_SRR0 /* SRR0 is faulting address */
|
||||
mfspr r11,SPRN_SRR1
|
||||
crclr 4*cr6+eq
|
||||
#ifndef CONFIG_RELOCATABLE
|
||||
b slb_miss_realmode
|
||||
#else
|
||||
LOAD_HANDLER(r10, slb_miss_realmode)
|
||||
mtctr r10
|
||||
bctr
|
||||
#endif
|
||||
BRANCH_TO_COMMON(r10, slb_miss_realmode)
|
||||
EXC_REAL_END(instruction_access_slb, 0x480, 0x80)
|
||||
|
||||
EXC_VIRT_BEGIN(instruction_access_slb, 0x4480, 0x80)
|
||||
|
@ -597,13 +569,7 @@ EXC_VIRT_BEGIN(instruction_access_slb, 0x4480, 0x80)
|
|||
mfspr r3,SPRN_SRR0 /* SRR0 is faulting address */
|
||||
mfspr r11,SPRN_SRR1
|
||||
crclr 4*cr6+eq
|
||||
#ifndef CONFIG_RELOCATABLE
|
||||
b slb_miss_realmode
|
||||
#else
|
||||
LOAD_HANDLER(r10, slb_miss_realmode)
|
||||
mtctr r10
|
||||
bctr
|
||||
#endif
|
||||
BRANCH_TO_COMMON(r10, slb_miss_realmode)
|
||||
EXC_VIRT_END(instruction_access_slb, 0x4480, 0x80)
|
||||
TRAMP_KVM(PACA_EXSLB, 0x480)
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче