]> git.baikalelectronics.ru Git - kernel.git/commit
kexec: fix segmentation fault in kimage_add_entry
authorJonathan Steel <jon.steel@esentire.com>
Mon, 22 Sep 2008 20:57:45 +0000 (13:57 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 23 Sep 2008 15:09:14 +0000 (08:09 -0700)
commit0b11b7f71f01bcc2bf115228b6111d2314d30bc6
tree12c91aff3aa1d32b2f747470c160093aab6bdabe
parent755295f646b6ab226a26b4acb946159e9ba68cdb
kexec: fix segmentation fault in kimage_add_entry

A segmentation fault can occur in kimage_add_entry in kexec.c when loading
a kernel image into memory.  The fault occurs because a page is requested
by calling kimage_alloc_page with gfp_mask GFP_KERNEL and the function may
actually return a page with gfp_mask GFP_HIGHUSER.  The high mem page is
returned because it was swapped with the kernel page due to the kernel
page being a page that will shortly be copied to.

This patch ensures that kimage_alloc_page returns a page that was created
with the correct gfp flags.

I have verified the change and fixed the whitespace damage of the original
patch.  Jonathan did a great job of tracking this down after he hit the
problem.  -- Eric

Signed-off-by: Jonathan Steel <jon.steel@esentire.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Acked-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/kexec.c