Index: linux-2.6.19-rc1-mm1/arch/ia64/Kconfig =================================================================== --- linux-2.6.19-rc1-mm1.orig/arch/ia64/Kconfig 2006-10-12 23:52:36.000000000 -0500 +++ linux-2.6.19-rc1-mm1/arch/ia64/Kconfig 2006-10-12 23:54:02.539017967 -0500 @@ -406,6 +406,10 @@ config VIRTUAL_MEM_MAP_HUGE then also change the base page size for the virtual memory map. Too high huge page sizes may lead to memory being wasted. +config STANDARD_MEM_MAP + depends on VIRTUAL_MEM_MAP | FLATMEM + default y + config HOLES_IN_ZONE bool default y if VIRTUAL_MEM_MAP Index: linux-2.6.19-rc1-mm1/arch/ia64/mm/contig.c =================================================================== --- linux-2.6.19-rc1-mm1.orig/arch/ia64/mm/contig.c 2006-10-12 23:52:41.000000000 -0500 +++ linux-2.6.19-rc1-mm1/arch/ia64/mm/contig.c 2006-10-12 23:54:02.552691012 -0500 @@ -45,8 +45,8 @@ show_mem (void) printk(KERN_INFO "Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); - i = max_mapnr; - for (i = 0; i < max_mapnr; i++) { + i = mem_map_max; + for (i = 0; i < mem_map_max; i++) { if (!pfn_valid(i)) { #ifdef CONFIG_VIRTUAL_MEM_MAP if (max_gap < LARGE_GAP) @@ -252,7 +252,7 @@ paging_init (void) printk("Virtual mem_map starts at 0x%p\n", mem_map); } #else /* !CONFIG_VIRTUAL_MEM_MAP */ - add_active_range(0, 0, max_low_pfn); + add_active_range(0, 0, mem_map_max); free_area_init_nodes(max_zone_pfns); #endif /* !CONFIG_VIRTUAL_MEM_MAP */ zero_page_memmap_ptr = virt_to_page(ia64_imva(empty_zero_page)); Index: linux-2.6.19-rc1-mm1/arch/ia64/mm/init.c =================================================================== --- linux-2.6.19-rc1-mm1.orig/arch/ia64/mm/init.c 2006-10-12 23:52:37.000000000 -0500 +++ linux-2.6.19-rc1-mm1/arch/ia64/mm/init.c 2006-10-12 23:54:02.566364056 -0500 @@ -674,12 +674,11 @@ mem_init (void) #ifdef CONFIG_FLATMEM if (!mem_map) BUG(); - max_mapnr = max_low_pfn; #endif - high_memory = __va(max_low_pfn * PAGE_SIZE); + high_memory = __va(mem_map_max * PAGE_SIZE); - kclist_add(&kcore_mem, __va(0), max_low_pfn * PAGE_SIZE); + kclist_add(&kcore_mem, __va(0), mem_map_max * PAGE_SIZE); kclist_add(&kcore_vmem, (void *)VMALLOC_START, VMALLOC_END-VMALLOC_START); kclist_add(&kcore_kernel, _stext, _end - _stext); Index: linux-2.6.19-rc1-mm1/arch/ia64/mm/discontig.c =================================================================== --- linux-2.6.19-rc1-mm1.orig/arch/ia64/mm/discontig.c 2006-10-12 23:52:41.000000000 -0500 +++ linux-2.6.19-rc1-mm1/arch/ia64/mm/discontig.c 2006-10-12 23:54:02.664028660 -0500 @@ -88,8 +88,8 @@ static int __init build_node_maps(unsign bdp->node_low_pfn = max(epfn, bdp->node_low_pfn); } - min_low_pfn = min(min_low_pfn, bdp->node_boot_start>>PAGE_SHIFT); - max_low_pfn = max(max_low_pfn, bdp->node_low_pfn); + mem_map_min = min(mem_map_min, bdp->node_boot_start>>PAGE_SHIFT); + mem_map_max = max(mem_map_max, bdp->node_low_pfn); return 0; }