powerpc/pseries: PACA save area fix for MCE vs MCE
MCE must not enable MSR_RI until PACA_EXMC is no longer being used. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
3f3b5dc14c
commit
a74599a504
|
@ -485,7 +485,23 @@ machine_check_fwnmi:
|
||||||
EXCEPTION_PROLOG_0(PACA_EXMC)
|
EXCEPTION_PROLOG_0(PACA_EXMC)
|
||||||
machine_check_pSeries_0:
|
machine_check_pSeries_0:
|
||||||
EXCEPTION_PROLOG_1(PACA_EXMC, KVMTEST, 0x200)
|
EXCEPTION_PROLOG_1(PACA_EXMC, KVMTEST, 0x200)
|
||||||
EXCEPTION_PROLOG_PSERIES_1(machine_check_common, EXC_STD)
|
/*
|
||||||
|
* The following is essentially EXCEPTION_PROLOG_PSERIES_1 with the
|
||||||
|
* difference that MSR_RI is not enabled, because PACA_EXMC is being
|
||||||
|
* used, so nested machine check corrupts it. machine_check_common
|
||||||
|
* enables MSR_RI.
|
||||||
|
*/
|
||||||
|
ld r12,PACAKBASE(r13)
|
||||||
|
ld r10,PACAKMSR(r13)
|
||||||
|
xori r10,r10,MSR_RI
|
||||||
|
mfspr r11,SPRN_SRR0
|
||||||
|
LOAD_HANDLER(r12, machine_check_common)
|
||||||
|
mtspr SPRN_SRR0,r12
|
||||||
|
mfspr r12,SPRN_SRR1
|
||||||
|
mtspr SPRN_SRR1,r10
|
||||||
|
rfid
|
||||||
|
b . /* prevent speculative execution */
|
||||||
|
|
||||||
KVM_HANDLER_SKIP(PACA_EXMC, EXC_STD, 0x200)
|
KVM_HANDLER_SKIP(PACA_EXMC, EXC_STD, 0x200)
|
||||||
KVM_HANDLER_SKIP(PACA_EXGEN, EXC_STD, 0x300)
|
KVM_HANDLER_SKIP(PACA_EXGEN, EXC_STD, 0x300)
|
||||||
KVM_HANDLER_SKIP(PACA_EXSLB, EXC_STD, 0x380)
|
KVM_HANDLER_SKIP(PACA_EXSLB, EXC_STD, 0x380)
|
||||||
|
@ -977,6 +993,9 @@ machine_check_common:
|
||||||
RECONCILE_IRQ_STATE(r10, r11)
|
RECONCILE_IRQ_STATE(r10, r11)
|
||||||
ld r3,PACA_EXMC+EX_DAR(r13)
|
ld r3,PACA_EXMC+EX_DAR(r13)
|
||||||
lwz r4,PACA_EXMC+EX_DSISR(r13)
|
lwz r4,PACA_EXMC+EX_DSISR(r13)
|
||||||
|
/* Enable MSR_RI when finished with PACA_EXMC */
|
||||||
|
li r10,MSR_RI
|
||||||
|
mtmsrd r10,1
|
||||||
std r3,_DAR(r1)
|
std r3,_DAR(r1)
|
||||||
std r4,_DSISR(r1)
|
std r4,_DSISR(r1)
|
||||||
bl save_nvgprs
|
bl save_nvgprs
|
||||||
|
|
Loading…
Reference in New Issue