Fix strange uses of MAX_NR_ZONES Sometimes we use MAX_NR_ZONES - x to refer to a zone. Make that explicit. Signed-off-by: Christoph Lameter Index: linux-2.6.17-mm6/arch/x86_64/mm/init.c =================================================================== --- linux-2.6.17-mm6.orig/arch/x86_64/mm/init.c 2006-07-03 13:47:14.329487884 -0700 +++ linux-2.6.17-mm6/arch/x86_64/mm/init.c 2006-07-03 14:33:13.479261596 -0700 @@ -536,7 +536,7 @@ int memory_add_physaddr_to_nid(u64 start int arch_add_memory(int nid, u64 start, u64 size) { struct pglist_data *pgdat = NODE_DATA(nid); - struct zone *zone = pgdat->node_zones + MAX_NR_ZONES-2; + struct zone *zone = pgdat->node_zones + ZONE_NORMAL; unsigned long start_pfn = start >> PAGE_SHIFT; unsigned long nr_pages = size >> PAGE_SHIFT; int ret; Index: linux-2.6.17-mm6/arch/i386/mm/init.c =================================================================== --- linux-2.6.17-mm6.orig/arch/i386/mm/init.c 2006-07-03 13:47:12.740718955 -0700 +++ linux-2.6.17-mm6/arch/i386/mm/init.c 2006-07-03 14:33:13.481214600 -0700 @@ -657,7 +657,7 @@ void __init mem_init(void) int arch_add_memory(int nid, u64 start, u64 size) { struct pglist_data *pgdata = &contig_page_data; - struct zone *zone = pgdata->node_zones + MAX_NR_ZONES-1; + struct zone *zone = pgdata->node_zones + ZONE_HIGHMEM; unsigned long start_pfn = start >> PAGE_SHIFT; unsigned long nr_pages = size >> PAGE_SHIFT;