diff options
author | Russell King | 2009-09-24 22:22:33 +0200 |
---|---|---|
committer | Russell King | 2009-09-24 22:22:33 +0200 |
commit | baea7b946f00a291b166ccae7fcfed6c01530cc6 (patch) | |
tree | 4aa275fbdbec9c7b9b4629e8bee2bbecd3c6a6af /mm/sparse.c | |
parent | Merge branch 'master' into for-linus (diff) | |
parent | Merge branch 'drm-intel-next' of git://git.kernel.org/pub/scm/linux/kernel/gi... (diff) | |
download | kernel-qcow2-linux-baea7b946f00a291b166ccae7fcfed6c01530cc6.tar.gz kernel-qcow2-linux-baea7b946f00a291b166ccae7fcfed6c01530cc6.tar.xz kernel-qcow2-linux-baea7b946f00a291b166ccae7fcfed6c01530cc6.zip |
Merge branch 'origin' into for-linus
Conflicts:
MAINTAINERS
Diffstat (limited to 'mm/sparse.c')
-rw-r--r-- | mm/sparse.c | 9 |
1 files changed, 6 insertions, 3 deletions
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) |