[PATCH] vmcore: Remove saved_max_pfn check

Magnus Damm magnus.damm at gmail.com
Tue Oct 21 07:56:38 EDT 2008

From: Magnus Damm <damm at igel.co.jp>

This patch removes the saved_max_pfn check from the /proc/vmcore
function read_from_oldmem(). No need to verify, we should be able
to just trust that "elfcorehdr=" is correctly passed to the crash
kernel on the kernel command line like we do with other parameters.

The read_from_oldmem() function in fs/proc/vmcore.c is quite similar
to read_from_oldmem() in drivers/char/mem.c, but only in the latter
it makes sense to use saved_max_pfn. For oldmem it is used to determine
when to stop reading. For vmcore we already have the elf header info
pointing out the physical memory regions, no need to pass the end-of-
old-memory twice.

Removing the saved_max_pfn check from vmcore makes it possible for
architectures to skip oldmem but still support crash dump through
vmcore - without the need for the old saved_max_pfn cruft.

Architectures that want to play safe can do the saved_max_pfn check
in copy_oldmem_page(). Not sure why anyone would want to do that,
but that's even safer than today - the saved_max_pfn check in vmcore
removed by this patch only checks the first page.

Signed-off-by: Magnus Damm <damm at igel.co.jp>
Acked-by: Vivek Goyal <vgoyal at redhat.com>
Acked-by: Simon Horman <horms at verge.net.au>

 Andrew, can you please pick up this one?

 fs/proc/vmcore.c |    2 --
 1 file changed, 2 deletions(-)

--- 0001/fs/proc/vmcore.c
+++ work/fs/proc/vmcore.c	2008-10-21 20:45:15.000000000 +0900
@@ -47,8 +47,6 @@ static ssize_t read_from_oldmem(char *bu
 	offset = (unsigned long)(*ppos % PAGE_SIZE);
 	pfn = (unsigned long)(*ppos / PAGE_SIZE);
-	if (pfn > saved_max_pfn)
-		return -EINVAL;
 	do {
 		if (count > (PAGE_SIZE - offset))

More information about the kexec mailing list