Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[firefly-linux-kernel-4.4.55.git] / arch / metag / mm / init.c
index d05b8455c44cb9ac356c33da7473478c7047c44d..28813f164730f7110ccf470d6ef610932f166580 100644 (file)
@@ -376,34 +376,21 @@ void __init paging_init(unsigned long mem_end)
 
 void __init mem_init(void)
 {
-       int nid;
-
 #ifdef CONFIG_HIGHMEM
        unsigned long tmp;
+
+       /*
+        * Explicitly reset zone->managed_pages because highmem pages are
+        * freed before calling free_all_bootmem();
+        */
+       reset_all_zones_managed_pages();
        for (tmp = highstart_pfn; tmp < highend_pfn; tmp++)
                free_highmem_page(pfn_to_page(tmp));
-       num_physpages += totalhigh_pages;
 #endif /* CONFIG_HIGHMEM */
 
-       for_each_online_node(nid) {
-               pg_data_t *pgdat = NODE_DATA(nid);
-               unsigned long node_pages = 0;
-
-               num_physpages += pgdat->node_present_pages;
-
-               if (pgdat->node_spanned_pages)
-                       node_pages = free_all_bootmem_node(pgdat);
-
-               totalram_pages += node_pages;
-       }
-
-       pr_info("Memory: %luk/%luk available\n",
-               (unsigned long)nr_free_pages() << (PAGE_SHIFT - 10),
-               num_physpages << (PAGE_SHIFT - 10));
-
+       free_all_bootmem();
+       mem_init_print_info(NULL);
        show_mem(0);
-
-       return;
 }
 
 void free_initmem(void)
@@ -414,7 +401,8 @@ void free_initmem(void)
 #ifdef CONFIG_BLK_DEV_INITRD
 void free_initrd_mem(unsigned long start, unsigned long end)
 {
-       free_reserved_area(start, end, POISON_FREE_INITMEM, "initrd");
+       free_reserved_area((void *)start, (void *)end, POISON_FREE_INITMEM,
+                          "initrd");
 }
 #endif