diff options
Diffstat (limited to 'kernel/kexec.c')
| -rw-r--r-- | kernel/kexec.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/kexec.c b/kernel/kexec.c index 59f3f0df35d4..aef265325cd3 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c | |||
| @@ -753,8 +753,14 @@ static struct page *kimage_alloc_page(struct kimage *image, | |||
| 753 | *old = addr | (*old & ~PAGE_MASK); | 753 | *old = addr | (*old & ~PAGE_MASK); |
| 754 | 754 | ||
| 755 | /* The old page I have found cannot be a | 755 | /* The old page I have found cannot be a |
| 756 | * destination page, so return it. | 756 | * destination page, so return it if it's |
| 757 | * gfp_flags honor the ones passed in. | ||
| 757 | */ | 758 | */ |
| 759 | if (!(gfp_mask & __GFP_HIGHMEM) && | ||
| 760 | PageHighMem(old_page)) { | ||
| 761 | kimage_free_pages(old_page); | ||
| 762 | continue; | ||
| 763 | } | ||
| 758 | addr = old_addr; | 764 | addr = old_addr; |
| 759 | page = old_page; | 765 | page = old_page; |
| 760 | break; | 766 | break; |
