diff options
author | Paul Mundt <lethal@linux-sh.org> | 2007-05-15 08:36:36 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2007-05-21 14:34:37 +0900 |
commit | e113276624104d9c3b25f333d8dd999b804d980a (patch) | |
tree | 1b8945f42557679e81e1fbd382183e5914354bb4 /arch/sh/kernel/traps.c | |
parent | f3a9022fd187de41a04de9c5b44ff40e68c6d661 (diff) | |
download | blackbird-op-linux-e113276624104d9c3b25f333d8dd999b804d980a.tar.gz blackbird-op-linux-e113276624104d9c3b25f333d8dd999b804d980a.zip |
sh: Wire up kdump crash kernel exec in die().
Now that we have the basic kdump support in place, add it in to
die() so we can enter the crash kernel automatically.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/traps.c')
-rw-r--r-- | arch/sh/kernel/traps.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c index a01e36705c5f..5b75cb6f8f9b 100644 --- a/arch/sh/kernel/traps.c +++ b/arch/sh/kernel/traps.c @@ -21,6 +21,7 @@ #include <linux/bug.h> #include <linux/debug_locks.h> #include <linux/kdebug.h> +#include <linux/kexec.h> #include <linux/limits.h> #include <asm/system.h> #include <asm/uaccess.h> @@ -101,6 +102,16 @@ void die(const char * str, struct pt_regs * regs, long err) bust_spinlocks(0); spin_unlock_irq(&die_lock); + + if (kexec_should_crash(current)) + crash_kexec(regs); + + if (in_interrupt()) + panic("Fatal exception in interrupt"); + + if (panic_on_oops) + panic("Fatal exception"); + do_exit(SIGSEGV); } |