diff options
Diffstat (limited to 'mm/page_alloc.c')
| -rw-r--r-- | mm/page_alloc.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 44030096da6..4a4f9219683 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5635,7 +5635,12 @@ static struct page *  __alloc_contig_migrate_alloc(struct page *page, unsigned long private,  			     int **resultp)  { -	return alloc_page(GFP_HIGHUSER_MOVABLE); +	gfp_t gfp_mask = GFP_USER | __GFP_MOVABLE; + +	if (PageHighMem(page)) +		gfp_mask |= __GFP_HIGHMEM; + +	return alloc_page(gfp_mask);  }  /* [start, end) must belong to a single zone. */  |