Merge branch 'x86/ptrace-syscall-exit' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-block.git] / mm / sparse-vmemmap.c
index a13ea6401ae7428d967d15a3c5a0cf5472ee2240..d9714bdcb4a387199a5875d9745999942a3aa4f8 100644 (file)
@@ -48,8 +48,14 @@ void * __meminit vmemmap_alloc_block(unsigned long size, int node)
 {
        /* If the main allocator is up use that, fallback to bootmem. */
        if (slab_is_available()) {
-               struct page *page = alloc_pages_node(node,
+               struct page *page;
+
+               if (node_state(node, N_HIGH_MEMORY))
+                       page = alloc_pages_node(node,
                                GFP_KERNEL | __GFP_ZERO, get_order(size));
+               else
+                       page = alloc_pages(GFP_KERNEL | __GFP_ZERO,
+                               get_order(size));
                if (page)
                        return page_address(page);
                return NULL;