#endif
        max_zone_pfns[ZONE_NORMAL] = max;
 
-       free_area_init_nodes(max_zone_pfns);
+       free_area_init(max_zone_pfns);
 }
 
 #else
 
                printk("Virtual mem_map starts at 0x%p\n", mem_map);
        }
 #endif /* !CONFIG_VIRTUAL_MEM_MAP */
-       free_area_init_nodes(max_zone_pfns);
+       free_area_init(max_zone_pfns);
        zero_page_memmap_ptr = virt_to_page(ia64_imva(empty_zero_page));
 }
 
        max_zone_pfns[ZONE_DMA32] = max_dma;
 #endif
        max_zone_pfns[ZONE_NORMAL] = max_pfn;
-       free_area_init_nodes(max_zone_pfns);
+       free_area_init(max_zone_pfns);
 
        zero_page_memmap_ptr = virt_to_page(ia64_imva(empty_zero_page));
 }
 
 #endif
 
        /* We don't have holes in memory map */
-       free_area_init_nodes(zones_size);
+       free_area_init(zones_size);
 }
 
 void __init setup_memory(void)
 
        zones_size[ZONE_DMA32] = MAX_DMA32_PFN;
 #endif
        zones_size[ZONE_NORMAL] = max_low_pfn;
-       free_area_init_nodes(zones_size);
+       free_area_init(zones_size);
 }
 
 void __init mem_init(void)
 
        }
 #endif
 
-       free_area_init_nodes(max_zone_pfns);
+       free_area_init(max_zone_pfns);
 }
 
 #ifdef CONFIG_64BIT
 
 
        pagetable_init();
        zones_size[ZONE_NORMAL] = max_low_pfn;
-       free_area_init_nodes(zones_size);
+       free_area_init(zones_size);
 }
 
 void __init mem_init(void)
 
        max_zone_pfns[ZONE_HIGHMEM] = max_pfn;
 #endif
 
-       free_area_init_nodes(max_zone_pfns);
+       free_area_init(max_zone_pfns);
 
        mark_nonram_nosave();
 }
 
 #endif
        max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
 
-       free_area_init_nodes(max_zone_pfns);
+       free_area_init(max_zone_pfns);
 }
 
 static void setup_zero_page(void)
 
        memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
        max_zone_pfns[ZONE_DMA] = PFN_DOWN(MAX_DMA_ADDRESS);
        max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
-       free_area_init_nodes(max_zone_pfns);
+       free_area_init(max_zone_pfns);
 }
 
 void mark_rodata_ro(void)
 
 
        memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
        max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
-       free_area_init_nodes(max_zone_pfns);
+       free_area_init(max_zone_pfns);
 }
 
 unsigned int mem_init_done = 0;
 
 
                max_zone_pfns[ZONE_NORMAL] = end_pfn;
 
-               free_area_init_nodes(max_zone_pfns);
+               free_area_init(max_zone_pfns);
        }
 
        printk("Booting Linux...\n");
 
        max_zone_pfns[ZONE_HIGHMEM]     = max_pfn;
 #endif
 
-       free_area_init_nodes(max_zone_pfns);
+       free_area_init(max_zone_pfns);
 }
 
 __visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tlb_state, cpu_tlbstate) = {
 
 }
 
 extern void __init pagecache_init(void);
-extern void free_area_init(unsigned long * max_zone_pfn);
 extern void __init free_area_init_node(int nid, unsigned long * zones_size,
                unsigned long zone_start_pfn, unsigned long *zholes_size);
 extern void free_initmem(void);
  *
  * An architecture is expected to register range of page frames backed by
  * physical memory with memblock_add[_node]() before calling
- * free_area_init_nodes() passing in the PFN each zone ends at. At a basic
+ * free_area_init() passing in the PFN each zone ends at. At a basic
  * usage, an architecture is expected to do something like
  *
  * unsigned long max_zone_pfns[MAX_NR_ZONES] = {max_dma, max_normal_pfn,
  *                                                      max_highmem_pfn};
  * for_each_valid_physical_page_range()
  *     memblock_add_node(base, size, nid)
- * free_area_init_nodes(max_zone_pfns);
+ * free_area_init(max_zone_pfns);
  *
  * free_bootmem_with_active_regions() calls free_bootmem_node() for each
  * registered physical page range.  Similarly
  * sparse_memory_present_with_active_regions() calls memory_present() for
  * each range when SPARSEMEM is enabled.
  */
-extern void free_area_init_nodes(unsigned long *max_zone_pfn);
+void free_area_init(unsigned long *max_zone_pfn);
 unsigned long node_map_pfn_alignment(void);
 unsigned long __absent_pages_in_range(int nid, unsigned long start_pfn,
                                                unsigned long end_pfn);
 
 }
 
 /**
- * free_area_init_nodes - Initialise all pg_data_t and zone data
+ * free_area_init - Initialise all pg_data_t and zone data
  * @max_zone_pfn: an array of max PFNs for each zone
  *
  * This will call free_area_init_node() for each active node in the system.
  * starts where the previous one ended. For example, ZONE_DMA32 starts
  * at arch_max_dma_pfn.
  */
-void __init free_area_init_nodes(unsigned long *max_zone_pfn)
+void __init free_area_init(unsigned long *max_zone_pfn)
 {
        unsigned long start_pfn, end_pfn;
        int i, nid;
        dma_reserve = new_dma_reserve;
 }
 
-void __init free_area_init(unsigned long *max_zone_pfn)
-{
-       init_unavailable_mem();
-       free_area_init_nodes(max_zone_pfn);
-}
-
 static int page_alloc_cpu_dead(unsigned int cpu)
 {