discontig.c has its own version of set_max_mapnr_init(). However, all that it really does differently from the mm/init.c version is skip setting max_mapnr (which doesn't exist because there's no mem_map[]). Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton --- memhotplug-dave/arch/i386/mm/discontig.c | 9 --------- memhotplug-dave/arch/i386/mm/init.c | 11 +++++++---- 2 files changed, 7 insertions(+), 13 deletions(-) diff -puN arch/i386/mm/discontig.c~FROM-MM-consolidate-set_max_mapnr_init-implementations arch/i386/mm/discontig.c --- memhotplug/arch/i386/mm/discontig.c~FROM-MM-consolidate-set_max_mapnr_init-implementations 2005-03-08 14:27:58.000000000 -0800 +++ memhotplug-dave/arch/i386/mm/discontig.c 2005-03-08 14:27:58.000000000 -0800 @@ -355,12 +355,3 @@ void __init set_highmem_pages_init(int b totalram_pages += totalhigh_pages; #endif } - -void __init set_max_mapnr_init(void) -{ -#ifdef CONFIG_HIGHMEM - num_physpages = highend_pfn; -#else - num_physpages = max_low_pfn; -#endif -} diff -puN arch/i386/mm/init.c~FROM-MM-consolidate-set_max_mapnr_init-implementations arch/i386/mm/init.c --- memhotplug/arch/i386/mm/init.c~FROM-MM-consolidate-set_max_mapnr_init-implementations 2005-03-08 14:27:58.000000000 -0800 +++ memhotplug-dave/arch/i386/mm/init.c 2005-03-08 14:27:58.000000000 -0800 @@ -548,19 +548,22 @@ void __init test_wp_bit(void) } } -#ifndef CONFIG_DISCONTIGMEM static void __init set_max_mapnr_init(void) { #ifdef CONFIG_HIGHMEM - max_mapnr = num_physpages = highend_pfn; + num_physpages = highend_pfn; #else - max_mapnr = num_physpages = max_low_pfn; + num_physpages = max_low_pfn; +#endif +#ifndef CONFIG_DISCONTIGMEM + max_mapnr = num_physpages; #endif } + +#ifndef CONFIG_DISCONTIGMEM #define __free_all_bootmem() free_all_bootmem() #else #define __free_all_bootmem() free_all_bootmem_node(NODE_DATA(0)) -extern void set_max_mapnr_init(void); #endif /* !CONFIG_DISCONTIGMEM */ static struct kcore_list kcore_mem, kcore_vmalloc; _