Commit 3f2b73c3c3e59cb9b94490d664b2439cd9c540e2
Committed by
Linus Torvalds
1 parent
4e422de996
Exists in
master
and in
20 other branches
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; |
arch/frv/mm/init.c
... | ... | @@ -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 | /*****************************************************************************/ |