diff options
-rw-r--r-- | mm/vmalloc.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 750ab6ed13fc..1133dd3aafcf 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c | |||
@@ -428,8 +428,11 @@ void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask, | |||
428 | if (array_size > PAGE_SIZE) { | 428 | if (array_size > PAGE_SIZE) { |
429 | pages = __vmalloc_node(array_size, gfp_mask, PAGE_KERNEL, node); | 429 | pages = __vmalloc_node(array_size, gfp_mask, PAGE_KERNEL, node); |
430 | area->flags |= VM_VPAGES; | 430 | area->flags |= VM_VPAGES; |
431 | } else | 431 | } else { |
432 | pages = kmalloc_node(array_size, (gfp_mask & ~__GFP_HIGHMEM), node); | 432 | pages = kmalloc_node(array_size, |
433 | (gfp_mask & ~(__GFP_HIGHMEM | __GFP_ZERO)), | ||
434 | node); | ||
435 | } | ||
433 | area->pages = pages; | 436 | area->pages = pages; |
434 | if (!area->pages) { | 437 | if (!area->pages) { |
435 | remove_vm_area(area->addr); | 438 | remove_vm_area(area->addr); |