Commit 2030eae5 authored by Vivek Goyal's avatar Vivek Goyal Committed by Linus Torvalds
Browse files

[PATCH] Retrieve elfcorehdr address from command line



This patch adds support for retrieving the address of elf core header if one
is passed in command line.

Signed-off-by: default avatarVivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 60e64d46
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -451,6 +451,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"}
+8 −0
Original line number Diff line number Diff line
@@ -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>

@@ -881,6 +882,13 @@ static void __init parse_cmdline_early (char ** cmdline_p)
			}
		}
#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.
+1 −0
Original line number Diff line number Diff line
@@ -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 */
+3 −0
Original line number Diff line number Diff line
@@ -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.