]> Pileus Git - ~andy/linux/blobdiff - arch/unicore32/mm/init.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux...
[~andy/linux] / arch / unicore32 / mm / init.c
index 63df12d71ce386247971161ce4d070a089731ed1..ae6bc036db92afdc4de9f83de485caf2a86695fe 100644 (file)
@@ -383,59 +383,14 @@ static void __init free_unused_memmap(struct meminfo *mi)
  */
 void __init mem_init(void)
 {
-       unsigned long reserved_pages, free_pages;
-       struct memblock_region *reg;
-       int i;
-
        max_mapnr   = pfn_to_page(max_pfn + PHYS_PFN_OFFSET) - mem_map;
 
        free_unused_memmap(&meminfo);
 
        /* this will put all unused low memory onto the freelists */
-       totalram_pages += free_all_bootmem();
-
-       reserved_pages = free_pages = 0;
-
-       for_each_bank(i, &meminfo) {
-               struct membank *bank = &meminfo.bank[i];
-               unsigned int pfn1, pfn2;
-               struct page *page, *end;
-
-               pfn1 = bank_pfn_start(bank);
-               pfn2 = bank_pfn_end(bank);
-
-               page = pfn_to_page(pfn1);
-               end  = pfn_to_page(pfn2 - 1) + 1;
-
-               do {
-                       if (PageReserved(page))
-                               reserved_pages++;
-                       else if (!page_count(page))
-                               free_pages++;
-                       page++;
-               } while (page < end);
-       }
-
-       /*
-        * Since our memory may not be contiguous, calculate the
-        * real number of pages we have in this system
-        */
-       printk(KERN_INFO "Memory:");
-       num_physpages = 0;
-       for_each_memblock(memory, reg) {
-               unsigned long pages = memblock_region_memory_end_pfn(reg) -
-                       memblock_region_memory_base_pfn(reg);
-               num_physpages += pages;
-               printk(" %ldMB", pages >> (20 - PAGE_SHIFT));
-       }
-       printk(" = %luMB total\n", num_physpages >> (20 - PAGE_SHIFT));
-
-       printk(KERN_NOTICE "Memory: %luk/%luk available, %luk reserved, %luK highmem\n",
-               nr_free_pages() << (PAGE_SHIFT-10),
-               free_pages << (PAGE_SHIFT-10),
-               reserved_pages << (PAGE_SHIFT-10),
-               totalhigh_pages << (PAGE_SHIFT-10));
+       free_all_bootmem();
 
+       mem_init_print_info(NULL);
        printk(KERN_NOTICE "Virtual kernel memory layout:\n"
                "    vector  : 0x%08lx - 0x%08lx   (%4ld kB)\n"
                "    vmalloc : 0x%08lx - 0x%08lx   (%4ld MB)\n"
@@ -464,7 +419,7 @@ void __init mem_init(void)
        BUILD_BUG_ON(TASK_SIZE                          > MODULES_VADDR);
        BUG_ON(TASK_SIZE                                > MODULES_VADDR);
 
-       if (PAGE_SIZE >= 16384 && num_physpages <= 128) {
+       if (PAGE_SIZE >= 16384 && get_num_physpages() <= 128) {
                /*
                 * On a machine this small we won't get
                 * anywhere without overcommit, so turn
@@ -476,7 +431,7 @@ void __init mem_init(void)
 
 void free_initmem(void)
 {
-       free_initmem_default(0);
+       free_initmem_default(-1);
 }
 
 #ifdef CONFIG_BLK_DEV_INITRD
@@ -486,7 +441,7 @@ static int keep_initrd;
 void free_initrd_mem(unsigned long start, unsigned long end)
 {
        if (!keep_initrd)
-               free_reserved_area(start, end, 0, "initrd");
+               free_reserved_area((void *)start, (void *)end, -1, "initrd");
 }
 
 static int __init keepinitrd_setup(char *__unused)