diff options
Diffstat (limited to 'arch/powerpc/kernel/traps.c')
| -rw-r--r-- | arch/powerpc/kernel/traps.c | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c index c091527efd8..a750409ccc4 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c @@ -57,6 +57,7 @@  #include <asm/kexec.h>  #include <asm/ppc-opcode.h>  #include <asm/rio.h> +#include <asm/fadump.h>  #if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC)  int (*__debugger)(struct pt_regs *regs) __read_mostly; @@ -145,6 +146,8 @@ static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,  		arch_spin_unlock(&die_lock);  	raw_local_irq_restore(flags); +	crash_fadump(regs, "die oops"); +  	/*  	 * A system reset (0x100) is a request to dump, so we always send  	 * it through the crashdump code. @@ -244,6 +247,9 @@ void _exception(int signr, struct pt_regs *regs, int code, unsigned long addr)  				   addr, regs->nip, regs->link, code);  	} +	if (!arch_irq_disabled_regs(regs)) +		local_irq_enable(); +  	memset(&info, 0, sizeof(info));  	info.si_signo = signr;  	info.si_code = code;  |