From: Christoph Lameter The checks for node_online in the uncached allocator are made to make sure that memory is available on these nodes. Thus switch all the checks to use N_HIGH_MEMORY and to N_ONLINE. Signed-off-by: Christoph Lameter Signed-off-by: Jes Sorensen Acked-by: Lee Schermerhorn Acked-by: Bob Picco Cc: Nishanth Aravamudan Cc: KAMEZAWA Hiroyuki Cc: Mel Gorman Signed-off-by: Andrew Morton --- arch/ia64/kernel/uncached.c | 4 ++-- drivers/char/mspec.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff -puN arch/ia64/kernel/uncached.c~memoryless-nodes-uncached-allocator-updates arch/ia64/kernel/uncached.c --- a/arch/ia64/kernel/uncached.c~memoryless-nodes-uncached-allocator-updates +++ a/arch/ia64/kernel/uncached.c @@ -196,7 +196,7 @@ unsigned long uncached_alloc_page(int st nid = starting_nid; do { - if (!node_online(nid)) + if (!node_state(nid, N_HIGH_MEMORY)) continue; uc_pool = &uncached_pools[nid]; if (uc_pool->pool == NULL) @@ -268,7 +268,7 @@ static int __init uncached_init(void) { int nid; - for_each_online_node(nid) { + for_each_node_state(nid, N_ONLINE) { uncached_pools[nid].pool = gen_pool_create(PAGE_SHIFT, nid); mutex_init(&uncached_pools[nid].add_chunk_mutex); } diff -puN drivers/char/mspec.c~memoryless-nodes-uncached-allocator-updates drivers/char/mspec.c --- a/drivers/char/mspec.c~memoryless-nodes-uncached-allocator-updates +++ a/drivers/char/mspec.c @@ -372,7 +372,7 @@ mspec_init(void) is_sn2 = 1; if (is_shub2()) { ret = -ENOMEM; - for_each_online_node(nid) { + for_each_node_state(nid, N_ONLINE) { int actual_nid; int nasid; unsigned long phys; _