add a notify_die handler to hook the panic entry point prior to
Linux "execve"-ing another kernel for crash analysis.
Signed-off-by: Jeffrey Vernon Merkey ([email protected])
--- a/kernel/panic.c 2008-08-13 14:22:32.000000000 -0600
+++ b/kernel/panic.c 2008-08-13 11:56:03.000000000 -0600
@@ -21,6 +21,8 @@
#include <linux/debug_locks.h>
#include <linux/random.h>
#include <linux/kallsyms.h>
+#include <linux/kdebug.h>
+
int panic_on_oops;
int tainted;
@@ -82,6 +84,13 @@
printk(KERN_EMERG "Kernel panic - not syncing: %s\n",buf);
bust_spinlocks(0);
+ /* call the notify_die handler for any resident debuggers which
+ * may be active and pass the message string. On a software
+ * fault return at least some sort of regs for a remote debugger
+ * to look at.
+ */
+ notify_die(DIE_PANIC, buf, get_irq_regs(), 0, 0, 0);
+
/*
* If we have crashed and we have a crash kernel loaded let it handle
* everything else.