mm/MIPS: prepare for removing num_physpages and simplify mem_init()
authorJiang Liu <liuj97@gmail.com>
Wed, 3 Jul 2013 22:04:04 +0000 (15:04 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 3 Jul 2013 23:07:36 +0000 (16:07 -0700)
Prepare for removing num_physpages and simplify mem_init().

Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: David Daney <david.daney@cavium.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: John Crispin <blogic@openwrt.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Minchan Kim <minchan@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/mips/mm/init.c
arch/mips/pci/pci-lantiq.c
arch/mips/sgi-ip27/ip27-memory.c

index e7333f15b1b7555ce0a609ffae73c08355d411c3..4e73f10a751957b677da6ca8186f6294777ad709 100644 (file)
@@ -359,11 +359,24 @@ void __init paging_init(void)
 static struct kcore_list kcore_kseg0;
 #endif
 
-void __init mem_init(void)
+static inline void mem_init_free_highmem(void)
 {
-       unsigned long codesize, reservedpages, datasize, initsize;
-       unsigned long tmp, ram;
+#ifdef CONFIG_HIGHMEM
+       unsigned long tmp;
 
+       for (tmp = highstart_pfn; tmp < highend_pfn; tmp++) {
+               struct page *page = pfn_to_page(tmp);
+
+               if (!page_is_ram(tmp))
+                       SetPageReserved(page);
+               else
+                       free_highmem_page(page);
+       }
+#endif
+}
+
+void __init mem_init(void)
+{
 #ifdef CONFIG_HIGHMEM
 #ifdef CONFIG_DISCONTIGMEM
 #error "CONFIG_HIGHMEM and CONFIG_DISCONTIGMEM dont work together yet"
@@ -376,32 +389,8 @@ void __init mem_init(void)
 
        free_all_bootmem();
        setup_zero_pages();     /* Setup zeroed pages.  */
-
-       reservedpages = ram = 0;
-       for (tmp = 0; tmp < max_low_pfn; tmp++)
-               if (page_is_ram(tmp) && pfn_valid(tmp)) {
-                       ram++;
-                       if (PageReserved(pfn_to_page(tmp)))
-                               reservedpages++;
-               }
-       num_physpages = ram;
-
-#ifdef CONFIG_HIGHMEM
-       for (tmp = highstart_pfn; tmp < highend_pfn; tmp++) {
-               struct page *page = pfn_to_page(tmp);
-
-               if (!page_is_ram(tmp)) {
-                       SetPageReserved(page);
-                       continue;
-               }
-               free_highmem_page(page);
-       }
-       num_physpages += totalhigh_pages;
-#endif
-
-       codesize =  (unsigned long) &_etext - (unsigned long) &_text;
-       datasize =  (unsigned long) &_edata - (unsigned long) &_etext;
-       initsize =  (unsigned long) &__init_end - (unsigned long) &__init_begin;
+       mem_init_free_highmem();
+       mem_init_print_info(NULL);
 
 #ifdef CONFIG_64BIT
        if ((unsigned long) &_text > (unsigned long) CKSEG0)
@@ -410,16 +399,6 @@ void __init mem_init(void)
                kclist_add(&kcore_kseg0, (void *) CKSEG0,
                                0x80000000 - 4, KCORE_TEXT);
 #endif
-
-       printk(KERN_INFO "Memory: %luk/%luk available (%ldk kernel code, "
-              "%ldk reserved, %ldk data, %ldk init, %ldk highmem)\n",
-              nr_free_pages() << (PAGE_SHIFT-10),
-              ram << (PAGE_SHIFT-10),
-              codesize >> 10,
-              reservedpages << (PAGE_SHIFT-10),
-              datasize >> 10,
-              initsize >> 10,
-              totalhigh_pages << (PAGE_SHIFT-10));
 }
 #endif /* !CONFIG_NEED_MULTIPLE_NODES */
 
index 879077b0115518a289de1d20fb148ec28de01517..cb1ef9984069306dc8814f748581edca229f2c47 100644 (file)
@@ -89,7 +89,7 @@ static inline u32 ltq_calc_bar11mask(void)
        u32 mem, bar11mask;
 
        /* BAR11MASK value depends on available memory on system. */
-       mem = num_physpages * PAGE_SIZE;
+       mem = get_num_physpages() * PAGE_SIZE;
        bar11mask = (0x0ffffff0 & ~((1 << (fls(mem) - 1)) - 1)) | 8;
 
        return bar11mask;
index aecac4a08360a4cb5df1e2916dbe341a8c393df7..a0c9e34147c2f09a4dae9fc045b5da3824d4d8b4 100644 (file)
@@ -357,8 +357,6 @@ static void __init szmem(void)
        int slot;
        cnodeid_t node;
 
-       num_physpages = 0;
-
        for_each_online_node(node) {
                nodebytes = 0;
                for (slot = 0; slot < MAX_MEM_SLOTS; slot++) {
@@ -381,7 +379,6 @@ static void __init szmem(void)
                                slot = MAX_MEM_SLOTS;
                                continue;
                        }
-                       num_physpages += slot_psize;
                        memblock_add_node(PFN_PHYS(slot_getbasepfn(node, slot)),
                                          PFN_PHYS(slot_psize), node);
                }
@@ -480,10 +477,9 @@ void __init paging_init(void)
 
 void __init mem_init(void)
 {
-       unsigned long codesize, datasize, initsize, tmp;
        unsigned node;
 
-       high_memory = (void *) __va(num_physpages << PAGE_SHIFT);
+       high_memory = (void *) __va(get_num_physpages() << PAGE_SHIFT);
 
        for_each_online_node(node) {
                /*
@@ -494,18 +490,5 @@ void __init mem_init(void)
 
        setup_zero_pages();     /* This comes from node 0 */
 
-       codesize =  (unsigned long) &_etext - (unsigned long) &_text;
-       datasize =  (unsigned long) &_edata - (unsigned long) &_etext;
-       initsize =  (unsigned long) &__init_end - (unsigned long) &__init_begin;
-
-       tmp = nr_free_pages();
-       printk(KERN_INFO "Memory: %luk/%luk available (%ldk kernel code, "
-              "%ldk reserved, %ldk data, %ldk init, %ldk highmem)\n",
-              tmp << (PAGE_SHIFT-10),
-              num_physpages << (PAGE_SHIFT-10),
-              codesize >> 10,
-              (num_physpages - tmp) << (PAGE_SHIFT-10),
-              datasize >> 10,
-              initsize >> 10,
-              totalhigh_pages << (PAGE_SHIFT-10));
+       mem_init_print_info(NULL);
 }