Commit 2b9af6e4 authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman

powerpc/64s: Consolidate Data Segment 0x380 interrupt

Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 80795e6c
...@@ -566,6 +566,31 @@ EXC_REAL_BEGIN(data_access_slb, 0x380, 0x400) ...@@ -566,6 +566,31 @@ EXC_REAL_BEGIN(data_access_slb, 0x380, 0x400)
#endif #endif
EXC_REAL_END(data_access_slb, 0x380, 0x400) EXC_REAL_END(data_access_slb, 0x380, 0x400)
EXC_VIRT_BEGIN(data_access_slb, 0x4380, 0x4400)
SET_SCRATCH0(r13)
EXCEPTION_PROLOG_0(PACA_EXSLB)
EXCEPTION_PROLOG_1(PACA_EXSLB, NOTEST, 0x380)
std r3,PACA_EXSLB+EX_R3(r13)
mfspr r3,SPRN_DAR
mfspr r12,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.
*/
mfctr r11
LOAD_HANDLER(r10, slb_miss_realmode)
mtctr r10
bctr
#endif
EXC_VIRT_END(data_access_slb, 0x4380, 0x4400)
TRAMP_KVM_SKIP(PACA_EXSLB, 0x380)
EXC_REAL(instruction_access, 0x400, 0x480) EXC_REAL(instruction_access, 0x400, 0x480)
EXC_REAL_BEGIN(instruction_access_slb, 0x480, 0x500) EXC_REAL_BEGIN(instruction_access_slb, 0x480, 0x500)
...@@ -747,7 +772,6 @@ EXC_REAL_NONE(0x1800, 0x1900) ...@@ -747,7 +772,6 @@ EXC_REAL_NONE(0x1800, 0x1900)
/*** Out of line interrupts support ***/ /*** Out of line interrupts support ***/
/* moved from 0x200 */ /* moved from 0x200 */
TRAMP_KVM_SKIP(PACA_EXSLB, 0x380)
TRAMP_KVM(PACA_EXGEN, 0x400) TRAMP_KVM(PACA_EXGEN, 0x400)
TRAMP_KVM(PACA_EXSLB, 0x480) TRAMP_KVM(PACA_EXSLB, 0x480)
TRAMP_KVM(PACA_EXGEN, 0x900) TRAMP_KVM(PACA_EXGEN, 0x900)
...@@ -1016,30 +1040,6 @@ EXC_COMMON(altivec_assist_common, 0x1700, unknown_exception) ...@@ -1016,30 +1040,6 @@ EXC_COMMON(altivec_assist_common, 0x1700, unknown_exception)
* come here. * come here.
*/ */
EXC_VIRT_BEGIN(data_access_slb, 0x4380, 0x4400)
SET_SCRATCH0(r13)
EXCEPTION_PROLOG_0(PACA_EXSLB)
EXCEPTION_PROLOG_1(PACA_EXSLB, NOTEST, 0x380)
std r3,PACA_EXSLB+EX_R3(r13)
mfspr r3,SPRN_DAR
mfspr r12,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.
*/
mfctr r11
LOAD_HANDLER(r10, slb_miss_realmode)
mtctr r10
bctr
#endif
EXC_VIRT_END(data_access_slb, 0x4380, 0x4400)
EXC_VIRT(instruction_access, 0x4400, 0x4480, 0x400) EXC_VIRT(instruction_access, 0x4400, 0x4480, 0x400)
EXC_VIRT_BEGIN(instruction_access_slb, 0x4480, 0x4500) EXC_VIRT_BEGIN(instruction_access_slb, 0x4480, 0x4500)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment