From: Vivek Goyal <vgoyal@in.ibm.com> This patch adds support for retrieving the address of elf core header if one is passed in command line. Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> --- Documentation/kernel-parameters.txt | 4 ++++ arch/i386/kernel/setup.c | 8 ++++++++ include/linux/crash_dump.h | 1 + kernel/crash_dump.c | 3 +++ 4 files changed, 16 insertions(+) diff -puN arch/i386/kernel/setup.c~kdump-retrieve-elfcorehdr-address-from-command arch/i386/kernel/setup.c --- 25/arch/i386/kernel/setup.c~kdump-retrieve-elfcorehdr-address-from-command 2005-06-18 02:55:55.000000000 -0700 +++ 25-akpm/arch/i386/kernel/setup.c 2005-06-18 02:55:55.000000000 -0700 @@ -44,6 +44,7 @@ #include <linux/edd.h> #include <linux/nodemask.h> #include <linux/kexec.h> +#include <linux/crash_dump.h> #include <video/edid.h> @@ -882,6 +883,13 @@ static void __init parse_cmdline_early ( } } #endif +#ifdef CONFIG_CRASH_DUMP + /* elfcorehdr= specifies the location of elf core header + * stored by the crashed kernel. + */ + else if (!memcmp(from, "elfcorehdr=", 11)) + elfcorehdr_addr = memparse(from+11, &from); +#endif /* * highmem=size forces highmem to be exactly 'size' bytes. diff -puN Documentation/kernel-parameters.txt~kdump-retrieve-elfcorehdr-address-from-command Documentation/kernel-parameters.txt --- 25/Documentation/kernel-parameters.txt~kdump-retrieve-elfcorehdr-address-from-command 2005-06-18 02:55:55.000000000 -0700 +++ 25-akpm/Documentation/kernel-parameters.txt 2005-06-18 02:55:55.000000000 -0700 @@ -455,6 +455,10 @@ running once the system is up. Format: {"as"|"cfq"|"deadline"|"noop"} See Documentation/block/as-iosched.txt and Documentation/block/deadline-iosched.txt for details. + elfcorehdr= [IA-32] + Specifies physical address of start of kernel core image + elf header. + See Documentation/kdump.txt for details. enforcing [SELINUX] Set initial enforcing status. Format: {"0" | "1"} diff -puN include/linux/crash_dump.h~kdump-retrieve-elfcorehdr-address-from-command include/linux/crash_dump.h --- 25/include/linux/crash_dump.h~kdump-retrieve-elfcorehdr-address-from-command 2005-06-18 02:55:55.000000000 -0700 +++ 25-akpm/include/linux/crash_dump.h 2005-06-18 02:55:55.000000000 -0700 @@ -7,6 +7,7 @@ #include <linux/device.h> #include <linux/proc_fs.h> +extern unsigned long long elfcorehdr_addr; extern ssize_t copy_oldmem_page(unsigned long, char *, size_t, unsigned long, int); #endif /* CONFIG_CRASH_DUMP */ diff -puN kernel/crash_dump.c~kdump-retrieve-elfcorehdr-address-from-command kernel/crash_dump.c --- 25/kernel/crash_dump.c~kdump-retrieve-elfcorehdr-address-from-command 2005-06-18 02:55:55.000000000 -0700 +++ 25-akpm/kernel/crash_dump.c 2005-06-18 02:55:55.000000000 -0700 @@ -15,6 +15,9 @@ #include <asm/io.h> #include <asm/uaccess.h> +/* Stores the physical address of elf header of crash image. */ +unsigned long long elfcorehdr_addr; + /* * Copy a page from "oldmem". For this page, there is no pte mapped * in the current kernel. We stitch up a pte, similar to kmap_atomic. _