m68k: mm: simplify detection of memory zone boundaries
[linux-2.6-microblaze.git] / arch / m68k / mm / motorola.c
index 84ab596..904c2a6 100644 (file)
@@ -365,7 +365,7 @@ static void __init map_node(int node)
  */
 void __init paging_init(void)
 {
-       unsigned long zones_size[MAX_NR_ZONES] = { 0, };
+       unsigned long max_zone_pfn[MAX_NR_ZONES] = { 0, };
        unsigned long min_addr, max_addr;
        unsigned long addr;
        int i;
@@ -448,11 +448,10 @@ void __init paging_init(void)
 #ifdef DEBUG
        printk ("before free_area_init\n");
 #endif
-       for (i = 0; i < m68k_num_memory; i++) {
-               zones_size[ZONE_DMA] = m68k_memory[i].size >> PAGE_SHIFT;
-               free_area_init_node(i, zones_size,
-                                   m68k_memory[i].addr >> PAGE_SHIFT, NULL);
+       for (i = 0; i < m68k_num_memory; i++)
                if (node_present_pages(i))
                        node_set_state(i, N_NORMAL_MEMORY);
-       }
+
+       max_zone_pfn[ZONE_DMA] = memblock_end_of_DRAM();
+       free_area_init(max_zone_pfn);
 }