summaryrefslogtreecommitdiffstats
path: root/kernel/kexec.c
diff options
context:
space:
mode:
authorKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>2009-12-22 04:15:43 +0100
committerDavid Woodhouse <David.Woodhouse@intel.com>2009-12-31 20:45:04 +0100
commit0f4bd46ec252887f44f1f065b41867cac8f70dfb (patch)
treedaa176e9f9e1f5e9ba8c5476b5333142f31aa062 /kernel/kexec.c
parentMerge git://git.infradead.org/mtd-2.6 (diff)
downloadlinux-0f4bd46ec252887f44f1f065b41867cac8f70dfb.tar.xz
linux-0f4bd46ec252887f44f1f065b41867cac8f70dfb.zip
kmsg_dump: Dump on crash_kexec as well
crash_kexec gets called before kmsg_dump(KMSG_DUMP_OOPS) if panic_on_oops is set, so the kernel log buffer is not stored for this case. This patch adds a KMSG_DUMP_KEXEC dump type which gets called when crash_kexec() is invoked. To avoid getting double dumps, the old KMSG_DUMP_PANIC is moved below crash_kexec(). The mtdoops driver is modified to handle KMSG_DUMP_KEXEC in the same way as a panic. Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Acked-by: Simon Kagstrom <simon.kagstrom@netinsight.net> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'kernel/kexec.c')
-rw-r--r--kernel/kexec.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/kexec.c b/kernel/kexec.c
index 433e9fcc1fc5..ae217488fef8 100644
--- a/kernel/kexec.c
+++ b/kernel/kexec.c
@@ -32,6 +32,7 @@
#include <linux/console.h>
#include <linux/vmalloc.h>
#include <linux/swap.h>
+#include <linux/kmsg_dump.h>
#include <asm/page.h>
#include <asm/uaccess.h>
@@ -1074,6 +1075,9 @@ void crash_kexec(struct pt_regs *regs)
if (mutex_trylock(&kexec_mutex)) {
if (kexec_crash_image) {
struct pt_regs fixed_regs;
+
+ kmsg_dump(KMSG_DUMP_KEXEC);
+
crash_setup_regs(&fixed_regs, regs);
crash_save_vmcoreinfo();
machine_crash_shutdown(&fixed_regs);