parisc: simplify detection of memory zone boundaries
[linux-2.6-microblaze.git] / arch / parisc / mm / init.c
index 01d7071..cdd760d 100644 (file)
@@ -675,27 +675,11 @@ static void __init gateway_init(void)
 
 static void __init parisc_bootmem_free(void)
 {
-       unsigned long zones_size[MAX_NR_ZONES] = { 0, };
-       unsigned long holes_size[MAX_NR_ZONES] = { 0, };
-       unsigned long mem_start_pfn = ~0UL, mem_end_pfn = 0, mem_size_pfn = 0;
-       int i;
-
-       for (i = 0; i < npmem_ranges; i++) {
-               unsigned long start = pmem_ranges[i].start_pfn;
-               unsigned long size = pmem_ranges[i].pages;
-               unsigned long end = start + size;
-
-               if (mem_start_pfn > start)
-                       mem_start_pfn = start;
-               if (mem_end_pfn < end)
-                       mem_end_pfn = end;
-               mem_size_pfn += size;
-       }
+       unsigned long max_zone_pfn[MAX_NR_ZONES] = { 0, };
 
-       zones_size[0] = mem_end_pfn - mem_start_pfn;
-       holes_size[0] = zones_size[0] - mem_size_pfn;
+       max_zone_pfn[0] = memblock_end_of_DRAM();
 
-       free_area_init_node(0, zones_size, mem_start_pfn, holes_size);
+       free_area_init(max_zone_pfn);
 }
 
 void __init paging_init(void)