X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=mm%2Fsparse.c;h=6ce4aab69e9974aea1838092efc26601ea7598b4;hb=cd79bf7b1c061752dbee723bccf60c85d6c2d45d;hp=da432d9f0ae825eb4e050ed8168c1600c6a793da;hpb=f83b1e616f2f68b56b09b2f5116591981fee0c1c;p=karo-tx-linux.git diff --git a/mm/sparse.c b/mm/sparse.c index da432d9f0ae8..6ce4aab69e99 100644 --- a/mm/sparse.c +++ b/mm/sparse.c @@ -62,9 +62,12 @@ static struct mem_section noinline __init_refok *sparse_index_alloc(int nid) unsigned long array_size = SECTIONS_PER_ROOT * sizeof(struct mem_section); - if (slab_is_available()) - section = kmalloc_node(array_size, GFP_KERNEL, nid); - else + if (slab_is_available()) { + if (node_state(nid, N_HIGH_MEMORY)) + section = kmalloc_node(array_size, GFP_KERNEL, nid); + else + section = kmalloc(array_size, GFP_KERNEL); + } else section = alloc_bootmem_node(NODE_DATA(nid), array_size); if (section)