Subject: [PATCH] powerpc: Invoke kdump for system reset exception

From: "M. Mohan Kumar" <[email-masked]>
Date: Mon, 24 Aug 2009 08:42:44 +0530

Invoke kdump for system reset exception

Dump restart operation from HMC raises system reset exception
(0x100) and xmon is invoked(even if kdump kernel is loaded). User has to
exit from xmon by saying 'Don't recover' to invoke kdump. Modify this
behaviour so that xmon will return immediately for system reset
exception and kdump kernel will be invoked (if its loaded). If kdump
kernel is not loaded, proceed with xmon

Signed-off-by: M. Mohan Kumar <[email-masked]>
---
 arch/powerpc/xmon/xmon.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index e1f33a8..6847334 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -23,6 +23,7 @@
 #include <linux/interrupt.h>
 #include <linux/irq.h>
 #include <linux/bug.h>
+#include <linux/kexec.h>
 
 #include <asm/ptrace.h>
 #include <asm/string.h>
@@ -348,6 +349,14 @@ static int xmon_core(struct pt_regs *regs, int fromipi)
 	unsigned long timeout;
 #endif
 
+	/*
+	 * If the exception is 0x100 and if kexec crash image is loaded,
+	 * continue with kexec_crash
+	 */
+	if (kexec_should_crash(current) && kexec_crash_image &&
+					regs->trap == 0x100)
+		return 0;
+
 	local_irq_save(flags);
 
 	bp = in_breakpoint_table(regs->nip, &offset);
-- 
1.6.2.5