Commit 3f2b73c3c3e59cb9b94490d664b2439cd9c540e2

Authored by Jiang Liu
Committed by Linus Torvalds
1 parent 4e422de996

mm/frv: prepare for removing num_physpages and simplify mem_init()

Prepare for removing num_physpages and simplify mem_init().

Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 2 changed files with 21 additions and 41 deletions Side-by-side Diff

arch/frv/kernel/setup.c
... ... @@ -876,6 +876,7 @@
876 876 static void __init setup_linux_memory(void)
877 877 {
878 878 unsigned long bootmap_size, low_top_pfn, kstart, kend, high_mem;
  879 + unsigned long physpages;
879 880  
880 881 kstart = (unsigned long) &__kernel_image_start - PAGE_OFFSET;
881 882 kend = (unsigned long) &__kernel_image_end - PAGE_OFFSET;
882 883  
883 884  
884 885  
885 886  
... ... @@ -893,19 +894,19 @@
893 894 );
894 895  
895 896 /* pass the memory that the kernel can immediately use over to the bootmem allocator */
896   - max_mapnr = num_physpages = (memory_end - memory_start) >> PAGE_SHIFT;
  897 + max_mapnr = physpages = (memory_end - memory_start) >> PAGE_SHIFT;
897 898 low_top_pfn = (KERNEL_LOWMEM_END - KERNEL_LOWMEM_START) >> PAGE_SHIFT;
898 899 high_mem = 0;
899 900  
900   - if (num_physpages > low_top_pfn) {
  901 + if (physpages > low_top_pfn) {
901 902 #ifdef CONFIG_HIGHMEM
902   - high_mem = num_physpages - low_top_pfn;
  903 + high_mem = physpages - low_top_pfn;
903 904 #else
904   - max_mapnr = num_physpages = low_top_pfn;
  905 + max_mapnr = physpages = low_top_pfn;
905 906 #endif
906 907 }
907 908 else {
908   - low_top_pfn = num_physpages;
  909 + low_top_pfn = physpages;
909 910 }
910 911  
911 912 min_low_pfn = memory_start >> PAGE_SHIFT;
... ... @@ -979,7 +980,7 @@
979 980 free_bootmem(memory_start, memory_end - memory_start);
980 981  
981 982 high_memory = (void *) (memory_end & PAGE_MASK);
982   - max_mapnr = num_physpages = ((unsigned long) high_memory - PAGE_OFFSET) >> PAGE_SHIFT;
  983 + max_mapnr = ((unsigned long) high_memory - PAGE_OFFSET) >> PAGE_SHIFT;
983 984  
984 985 min_low_pfn = memory_start >> PAGE_SHIFT;
985 986 max_low_pfn = memory_end >> PAGE_SHIFT;
... ... @@ -78,7 +78,7 @@
78 78 memset((void *) empty_zero_page, 0, PAGE_SIZE);
79 79  
80 80 #ifdef CONFIG_HIGHMEM
81   - if (num_physpages - num_mappedpages) {
  81 + if (get_num_physpages() - num_mappedpages) {
82 82 pgd_t *pge;
83 83 pud_t *pue;
84 84 pmd_t *pme;
... ... @@ -96,7 +96,7 @@
96 96 */
97 97 zones_size[ZONE_NORMAL] = max_low_pfn - min_low_pfn;
98 98 #ifdef CONFIG_HIGHMEM
99   - zones_size[ZONE_HIGHMEM] = num_physpages - num_mappedpages;
  99 + zones_size[ZONE_HIGHMEM] = get_num_physpages() - num_mappedpages;
100 100 #endif
101 101  
102 102 free_area_init(zones_size);
103 103  
104 104  
105 105  
... ... @@ -114,45 +114,24 @@
114 114 */
115 115 void __init mem_init(void)
116 116 {
117   - unsigned long npages = (memory_end - memory_start) >> PAGE_SHIFT;
118   - unsigned long tmp;
119   -#ifdef CONFIG_MMU
120   - unsigned long loop, pfn;
121   - int datapages = 0;
122   -#endif
123   - int codek = 0, datak = 0;
  117 + unsigned long code_size = _etext - _stext;
124 118  
125 119 /* this will put all low memory onto the freelists */
126 120 free_all_bootmem();
  121 +#if defined(CONFIG_MMU) && defined(CONFIG_HIGHMEM)
  122 + {
  123 + unsigned long pfn;
127 124  
128   -#ifdef CONFIG_MMU
129   - for (loop = 0 ; loop < npages ; loop++)
130   - if (PageReserved(&mem_map[loop]))
131   - datapages++;
132   -
133   -#ifdef CONFIG_HIGHMEM
134   - for (pfn = num_physpages - 1; pfn >= num_mappedpages; pfn--)
135   - free_highmem_page(&mem_map[pfn]);
  125 + for (pfn = get_num_physpages() - 1;
  126 + pfn >= num_mappedpages; pfn--)
  127 + free_highmem_page(&mem_map[pfn]);
  128 + }
136 129 #endif
137 130  
138   - codek = ((unsigned long) &_etext - (unsigned long) &_stext) >> 10;
139   - datak = datapages << (PAGE_SHIFT - 10);
140   -
141   -#else
142   - codek = (_etext - _stext) >> 10;
143   - datak = 0; //(__bss_stop - _sdata) >> 10;
144   -#endif
145   -
146   - tmp = nr_free_pages() << PAGE_SHIFT;
147   - printk("Memory available: %luKiB/%luKiB RAM, %luKiB/%luKiB ROM (%dKiB kernel code, %dKiB data)\n",
148   - tmp >> 10,
149   - npages << (PAGE_SHIFT - 10),
150   - (rom_length > 0) ? ((rom_length >> 10) - codek) : 0,
151   - rom_length >> 10,
152   - codek,
153   - datak
154   - );
155   -
  131 + mem_init_print_info(NULL);
  132 + if (rom_length > 0 && rom_length >= code_size)
  133 + printk("Memory available: %luKiB/%luKiB ROM\n",
  134 + (rom_length - code_size) >> 10, rom_length >> 10);
156 135 } /* end mem_init() */
157 136  
158 137 /*****************************************************************************/