|
@@ -929,17 +929,12 @@ EXC_VIRT_NONE(0x4e60, 0x20)
|
|
TRAMP_KVM_HV(PACA_EXGEN, 0xe60)
|
|
TRAMP_KVM_HV(PACA_EXGEN, 0xe60)
|
|
TRAMP_REAL_BEGIN(hmi_exception_early)
|
|
TRAMP_REAL_BEGIN(hmi_exception_early)
|
|
EXCEPTION_PROLOG_1(PACA_EXGEN, KVMTEST_HV, 0xe60)
|
|
EXCEPTION_PROLOG_1(PACA_EXGEN, KVMTEST_HV, 0xe60)
|
|
- mr r10,r1 /* Save r1 */
|
|
|
|
- ld r1,PACAEMERGSP(r13) /* Use emergency stack */
|
|
|
|
|
|
+ mr r10,r1 /* Save r1 */
|
|
|
|
+ ld r1,PACAEMERGSP(r13) /* Use emergency stack for realmode */
|
|
subi r1,r1,INT_FRAME_SIZE /* alloc stack frame */
|
|
subi r1,r1,INT_FRAME_SIZE /* alloc stack frame */
|
|
- std r9,_CCR(r1) /* save CR in stackframe */
|
|
|
|
mfspr r11,SPRN_HSRR0 /* Save HSRR0 */
|
|
mfspr r11,SPRN_HSRR0 /* Save HSRR0 */
|
|
- std r11,_NIP(r1) /* save HSRR0 in stackframe */
|
|
|
|
- mfspr r12,SPRN_HSRR1 /* Save SRR1 */
|
|
|
|
- std r12,_MSR(r1) /* save SRR1 in stackframe */
|
|
|
|
- std r10,0(r1) /* make stack chain pointer */
|
|
|
|
- std r0,GPR0(r1) /* save r0 in stackframe */
|
|
|
|
- std r10,GPR1(r1) /* save r1 in stackframe */
|
|
|
|
|
|
+ mfspr r12,SPRN_HSRR1 /* Save HSRR1 */
|
|
|
|
+ EXCEPTION_PROLOG_COMMON_1()
|
|
EXCEPTION_PROLOG_COMMON_2(PACA_EXGEN)
|
|
EXCEPTION_PROLOG_COMMON_2(PACA_EXGEN)
|
|
EXCEPTION_PROLOG_COMMON_3(0xe60)
|
|
EXCEPTION_PROLOG_COMMON_3(0xe60)
|
|
addi r3,r1,STACK_FRAME_OVERHEAD
|
|
addi r3,r1,STACK_FRAME_OVERHEAD
|