diff options
author | Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> | 2013-04-28 05:37:26 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2013-04-30 01:59:42 -0400 |
commit | ce54152f429ed5e6ad83e5e9f61825b5a795dd1e (patch) | |
tree | 511310b26dd12bc4572ecb71a3b97ab392a55b6c /arch/powerpc/kernel/exceptions-64s.S | |
parent | 4b8f63d92e30ffd33bd77e028918919be2d926e6 (diff) |
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>
Diffstat (limited to 'arch/powerpc/kernel/exceptions-64s.S')
-rw-r--r-- | arch/powerpc/kernel/exceptions-64s.S | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S index 80d56f094a0d..e6eba1bf61ad 100644 --- a/arch/powerpc/kernel/exceptions-64s.S +++ b/arch/powerpc/kernel/exceptions-64s.S | |||
@@ -693,9 +693,18 @@ slb_miss_user_pseries: | |||
693 | .align 7 | 693 | .align 7 |
694 | .globl machine_check_common | 694 | .globl machine_check_common |
695 | machine_check_common: | 695 | machine_check_common: |
696 | |||
697 | mfspr r10,SPRN_DAR | ||
698 | std r10,PACA_EXGEN+EX_DAR(r13) | ||
699 | mfspr r10,SPRN_DSISR | ||
700 | stw r10,PACA_EXGEN+EX_DSISR(r13) | ||
696 | EXCEPTION_PROLOG_COMMON(0x200, PACA_EXMC) | 701 | EXCEPTION_PROLOG_COMMON(0x200, PACA_EXMC) |
697 | FINISH_NAP | 702 | FINISH_NAP |
698 | DISABLE_INTS | 703 | DISABLE_INTS |
704 | ld r3,PACA_EXGEN+EX_DAR(r13) | ||
705 | lwz r4,PACA_EXGEN+EX_DSISR(r13) | ||
706 | std r3,_DAR(r1) | ||
707 | std r4,_DSISR(r1) | ||
699 | bl .save_nvgprs | 708 | bl .save_nvgprs |
700 | addi r3,r1,STACK_FRAME_OVERHEAD | 709 | addi r3,r1,STACK_FRAME_OVERHEAD |
701 | bl .machine_check_exception | 710 | bl .machine_check_exception |