X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=kernel%2Fkexec.c;h=aef265325cd3596db981ed2515efec42f255804e;hb=bf7a06bcce205705ea5c7675cbb8ea9239ea30a0;hp=59f3f0df35d4e04365480f5362aac097a236b63d;hpb=170465ee7f5a9a2d0ac71285507e52642e040353;p=linux-2.6-omap-h63xx.git diff --git a/kernel/kexec.c b/kernel/kexec.c index 59f3f0df35d..aef265325cd 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c @@ -753,8 +753,14 @@ static struct page *kimage_alloc_page(struct kimage *image, *old = addr | (*old & ~PAGE_MASK); /* The old page I have found cannot be a - * destination page, so return it. + * destination page, so return it if it's + * gfp_flags honor the ones passed in. */ + if (!(gfp_mask & __GFP_HIGHMEM) && + PageHighMem(old_page)) { + kimage_free_pages(old_page); + continue; + } addr = old_addr; page = old_page; break;