From: Matthew Dobson 8/10 - Replace numnodes with node_online_map for ppc64 [mcd@arrakis node_online_map]$ diffstat arch-ppc64.patch -Matt Signed-off-by: Andrew Morton --- 25-akpm/arch/ppc64/mm/init.c | 2 +- 25-akpm/arch/ppc64/mm/numa.c | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff -puN arch/ppc64/mm/init.c~replace-numnodes-with-node_online_map-ppc64 arch/ppc64/mm/init.c --- 25/arch/ppc64/mm/init.c~replace-numnodes-with-node_online_map-ppc64 Thu Dec 23 15:22:00 2004 +++ 25-akpm/arch/ppc64/mm/init.c Thu Dec 23 15:22:00 2004 @@ -703,7 +703,7 @@ void __init mem_init(void) high_memory = (void *) __va(max_low_pfn * PAGE_SIZE); #ifdef CONFIG_DISCONTIGMEM - for (nid = 0; nid < numnodes; nid++) { + for_each_online_node(nid) { if (NODE_DATA(nid)->node_spanned_pages != 0) { printk("freeing bootmem node %x\n", nid); totalram_pages += diff -puN arch/ppc64/mm/numa.c~replace-numnodes-with-node_online_map-ppc64 arch/ppc64/mm/numa.c --- 25/arch/ppc64/mm/numa.c~replace-numnodes-with-node_online_map-ppc64 Thu Dec 23 15:22:00 2004 +++ 25-akpm/arch/ppc64/mm/numa.c Thu Dec 23 15:22:00 2004 @@ -216,7 +216,7 @@ static int numa_setup_cpu(unsigned long numa_domain = of_node_numa_domain(cpu); - if (numa_domain >= numnodes) { + if (numa_domain >= num_online_nodes()) { /* * POWER4 LPAR uses 0xffff as invalid node, * dont warn in this case. @@ -384,7 +384,8 @@ new_range: goto new_range; } - numnodes = max_domain + 1; + for (i = 0; i <= max_domain; i++) + node_set_online(i); return 0; } @@ -430,12 +431,9 @@ static void __init dump_numa_topology(vo if (min_common_depth == -1 || !numa_enabled) return; - for (node = 0; node < MAX_NUMNODES; node++) { + for_each_online_node(node) { unsigned long i; - if (!node_online(node)) - continue; - printk(KERN_INFO "Node %d Memory:", node); count = 0; @@ -519,7 +517,7 @@ void __init do_init_bootmem(void) register_cpu_notifier(&ppc64_numa_nb); - for (nid = 0; nid < numnodes; nid++) { + for_each_online_node(nid) { unsigned long start_paddr, end_paddr; int i; unsigned long bootmem_paddr; @@ -619,7 +617,7 @@ void __init paging_init(void) memset(zones_size, 0, sizeof(zones_size)); memset(zholes_size, 0, sizeof(zholes_size)); - for (nid = 0; nid < numnodes; nid++) { + for_each_online_node(nid) { unsigned long start_pfn; unsigned long end_pfn; _