powerpc: Save DAR and DSISR in pt_regs on MCE
We were not saving DAR and DSISR on MCE. Save then and also print the values along with exception details in xmon. Acked-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
4b8f63d92e
commit
ce54152f42
|
@ -693,9 +693,18 @@ slb_miss_user_pseries:
|
|||
.align 7
|
||||
.globl machine_check_common
|
||||
machine_check_common:
|
||||
|
||||
mfspr r10,SPRN_DAR
|
||||
std r10,PACA_EXGEN+EX_DAR(r13)
|
||||
mfspr r10,SPRN_DSISR
|
||||
stw r10,PACA_EXGEN+EX_DSISR(r13)
|
||||
EXCEPTION_PROLOG_COMMON(0x200, PACA_EXMC)
|
||||
FINISH_NAP
|
||||
DISABLE_INTS
|
||||
ld r3,PACA_EXGEN+EX_DAR(r13)
|
||||
lwz r4,PACA_EXGEN+EX_DSISR(r13)
|
||||
std r3,_DAR(r1)
|
||||
std r4,_DSISR(r1)
|
||||
bl .save_nvgprs
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
bl .machine_check_exception
|
||||
|
|
|
@ -1430,7 +1430,7 @@ static void excprint(struct pt_regs *fp)
|
|||
printf(" sp: %lx\n", fp->gpr[1]);
|
||||
printf(" msr: %lx\n", fp->msr);
|
||||
|
||||
if (trap == 0x300 || trap == 0x380 || trap == 0x600) {
|
||||
if (trap == 0x300 || trap == 0x380 || trap == 0x600 || trap == 0x200) {
|
||||
printf(" dar: %lx\n", fp->dar);
|
||||
if (trap != 0x380)
|
||||
printf(" dsisr: %lx\n", fp->dsisr);
|
||||
|
|
Loading…
Reference in New Issue