diff options
author | 2008-09-22 13:57:45 -0700 | |
---|---|---|
committer | 2008-09-23 08:09:14 -0700 | |
commit | f9092f358bc2ec5367621478811f046f82873376 (patch) | |
tree | 12c91aff3aa1d32b2f747470c160093aab6bdabe /include/linux/kernel.h | |
parent | kernel-doc: allow structs whose members are all private (diff) | |
download | wireguard-linux-f9092f358bc2ec5367621478811f046f82873376.tar.xz wireguard-linux-f9092f358bc2ec5367621478811f046f82873376.zip |
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>
Diffstat (limited to 'include/linux/kernel.h')
0 files changed, 0 insertions, 0 deletions