Commit c44e8d5e47b8ba672440b92eab0735628469116c
Committed by
Ralf Baechle
1 parent
2fa7937bd8
Exists in
master
and in
4 other branches
[MIPS] prom_free_prom_memory cleanup
Current prom_free_prom_memory() implementations are almost same as free_init_pages(), or no-op. Make free_init_pages() extern (again) and make prom_free_prom_memory() use it. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Showing 31 changed files with 44 additions and 114 deletions Side-by-side Diff
- arch/mips/arc/memory.c
- arch/mips/au1000/common/prom.c
- arch/mips/cobalt/setup.c
- arch/mips/ddb5xxx/common/prom.c
- arch/mips/dec/prom/memory.c
- arch/mips/gt64120/ev64120/setup.c
- arch/mips/gt64120/momenco_ocelot/prom.c
- arch/mips/gt64120/wrppmc/setup.c
- arch/mips/jmr3927/common/prom.c
- arch/mips/lasat/prom.c
- arch/mips/mips-boards/generic/memory.c
- arch/mips/mips-boards/sim/sim_mem.c
- arch/mips/mm/init.c
- arch/mips/momentum/jaguar_atx/prom.c
- arch/mips/momentum/ocelot_3/prom.c
- arch/mips/momentum/ocelot_c/prom.c
- arch/mips/momentum/ocelot_g/prom.c
- arch/mips/philips/pnx8550/common/prom.c
- arch/mips/pmc-sierra/yosemite/prom.c
- arch/mips/qemu/q-mem.c
- arch/mips/sgi-ip22/ip22-mc.c
- arch/mips/sgi-ip27/ip27-memory.c
- arch/mips/sgi-ip32/ip32-memory.c
- arch/mips/sibyte/cfe/setup.c
- arch/mips/sibyte/sb1250/prom.c
- arch/mips/sni/sniprom.c
- arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_prom.c
- arch/mips/tx4938/toshiba_rbtx4938/prom.c
- arch/mips/vr41xx/common/init.c
- include/asm-mips/bootinfo.h
- include/asm-mips/mips-boards/prom.h
arch/mips/arc/memory.c
... | ... | @@ -141,31 +141,21 @@ |
141 | 141 | } |
142 | 142 | } |
143 | 143 | |
144 | -unsigned long __init prom_free_prom_memory(void) | |
144 | +void __init prom_free_prom_memory(void) | |
145 | 145 | { |
146 | - unsigned long freed = 0; | |
147 | 146 | unsigned long addr; |
148 | 147 | int i; |
149 | 148 | |
150 | 149 | if (prom_flags & PROM_FLAG_DONT_FREE_TEMP) |
151 | - return 0; | |
150 | + return; | |
152 | 151 | |
153 | 152 | for (i = 0; i < boot_mem_map.nr_map; i++) { |
154 | 153 | if (boot_mem_map.map[i].type != BOOT_MEM_ROM_DATA) |
155 | 154 | continue; |
156 | 155 | |
157 | 156 | addr = boot_mem_map.map[i].addr; |
158 | - while (addr < boot_mem_map.map[i].addr | |
159 | - + boot_mem_map.map[i].size) { | |
160 | - ClearPageReserved(virt_to_page(__va(addr))); | |
161 | - init_page_count(virt_to_page(__va(addr))); | |
162 | - free_page((unsigned long)__va(addr)); | |
163 | - addr += PAGE_SIZE; | |
164 | - freed += PAGE_SIZE; | |
165 | - } | |
157 | + free_init_pages("prom memory", | |
158 | + addr, addr + boot_mem_map.map[i].size); | |
166 | 159 | } |
167 | - printk(KERN_INFO "Freeing prom memory: %ldkb freed\n", freed >> 10); | |
168 | - | |
169 | - return freed; | |
170 | 160 | } |
arch/mips/au1000/common/prom.c
arch/mips/cobalt/setup.c
arch/mips/ddb5xxx/common/prom.c
arch/mips/dec/prom/memory.c
... | ... | @@ -92,9 +92,9 @@ |
92 | 92 | rex_setup_memory_region(); |
93 | 93 | } |
94 | 94 | |
95 | -unsigned long __init prom_free_prom_memory(void) | |
95 | +void __init prom_free_prom_memory(void) | |
96 | 96 | { |
97 | - unsigned long addr, end; | |
97 | + unsigned long end; | |
98 | 98 | |
99 | 99 | /* |
100 | 100 | * Free everything below the kernel itself but leave |
... | ... | @@ -114,17 +114,6 @@ |
114 | 114 | #endif |
115 | 115 | end = __pa(&_text); |
116 | 116 | |
117 | - addr = PAGE_SIZE; | |
118 | - while (addr < end) { | |
119 | - ClearPageReserved(virt_to_page(__va(addr))); | |
120 | - init_page_count(virt_to_page(__va(addr))); | |
121 | - free_page((unsigned long)__va(addr)); | |
122 | - addr += PAGE_SIZE; | |
123 | - } | |
124 | - | |
125 | - printk("Freeing unused PROM memory: %ldkb freed\n", | |
126 | - (end - PAGE_SIZE) >> 10); | |
127 | - | |
128 | - return end - PAGE_SIZE; | |
117 | + free_init_pages("unused PROM memory", PAGE_SIZE, end); | |
129 | 118 | } |
arch/mips/gt64120/ev64120/setup.c
arch/mips/gt64120/momenco_ocelot/prom.c
arch/mips/gt64120/wrppmc/setup.c
arch/mips/jmr3927/common/prom.c
arch/mips/lasat/prom.c
... | ... | @@ -132,9 +132,8 @@ |
132 | 132 | add_memory_region(0, lasat_board_info.li_memsize, BOOT_MEM_RAM); |
133 | 133 | } |
134 | 134 | |
135 | -unsigned long __init prom_free_prom_memory(void) | |
135 | +void __init prom_free_prom_memory(void) | |
136 | 136 | { |
137 | - return 0; | |
138 | 137 | } |
139 | 138 | |
140 | 139 | const char *get_system_type(void) |
arch/mips/mips-boards/generic/memory.c
... | ... | @@ -166,9 +166,8 @@ |
166 | 166 | } |
167 | 167 | } |
168 | 168 | |
169 | -unsigned long __init prom_free_prom_memory(void) | |
169 | +void __init prom_free_prom_memory(void) | |
170 | 170 | { |
171 | - unsigned long freed = 0; | |
172 | 171 | unsigned long addr; |
173 | 172 | int i; |
174 | 173 | |
175 | 174 | |
... | ... | @@ -176,18 +175,9 @@ |
176 | 175 | if (boot_mem_map.map[i].type != BOOT_MEM_ROM_DATA) |
177 | 176 | continue; |
178 | 177 | |
179 | - addr = PAGE_ALIGN(boot_mem_map.map[i].addr); | |
180 | - while (addr < boot_mem_map.map[i].addr | |
181 | - + boot_mem_map.map[i].size) { | |
182 | - ClearPageReserved(virt_to_page(__va(addr))); | |
183 | - init_page_count(virt_to_page(__va(addr))); | |
184 | - free_page((unsigned long)__va(addr)); | |
185 | - addr += PAGE_SIZE; | |
186 | - freed += PAGE_SIZE; | |
187 | - } | |
178 | + addr = boot_mem_map.map[i].addr; | |
179 | + free_init_pages("prom memory", | |
180 | + addr, addr + boot_mem_map.map[i].size); | |
188 | 181 | } |
189 | - printk("Freeing prom memory: %ldkb freed\n", freed >> 10); | |
190 | - | |
191 | - return freed; | |
192 | 182 | } |
arch/mips/mips-boards/sim/sim_mem.c
... | ... | @@ -99,10 +99,9 @@ |
99 | 99 | } |
100 | 100 | } |
101 | 101 | |
102 | -unsigned long __init prom_free_prom_memory(void) | |
102 | +void __init prom_free_prom_memory(void) | |
103 | 103 | { |
104 | 104 | int i; |
105 | - unsigned long freed = 0; | |
106 | 105 | unsigned long addr; |
107 | 106 | |
108 | 107 | for (i = 0; i < boot_mem_map.nr_map; i++) { |
109 | 108 | |
... | ... | @@ -110,17 +109,8 @@ |
110 | 109 | continue; |
111 | 110 | |
112 | 111 | addr = boot_mem_map.map[i].addr; |
113 | - while (addr < boot_mem_map.map[i].addr | |
114 | - + boot_mem_map.map[i].size) { | |
115 | - ClearPageReserved(virt_to_page(__va(addr))); | |
116 | - init_page_count(virt_to_page(__va(addr))); | |
117 | - free_page((unsigned long)__va(addr)); | |
118 | - addr += PAGE_SIZE; | |
119 | - freed += PAGE_SIZE; | |
120 | - } | |
112 | + free_init_pages("prom memory", | |
113 | + addr, addr + boot_mem_map.map[i].size); | |
121 | 114 | } |
122 | - printk("Freeing prom memory: %ldkb freed\n", freed >> 10); | |
123 | - | |
124 | - return freed; | |
125 | 115 | } |
arch/mips/mm/init.c
... | ... | @@ -467,7 +467,7 @@ |
467 | 467 | } |
468 | 468 | #endif /* !CONFIG_NEED_MULTIPLE_NODES */ |
469 | 469 | |
470 | -static void free_init_pages(char *what, unsigned long begin, unsigned long end) | |
470 | +void free_init_pages(const char *what, unsigned long begin, unsigned long end) | |
471 | 471 | { |
472 | 472 | unsigned long pfn; |
473 | 473 | |
474 | 474 | |
... | ... | @@ -493,17 +493,9 @@ |
493 | 493 | } |
494 | 494 | #endif |
495 | 495 | |
496 | -extern unsigned long prom_free_prom_memory(void); | |
497 | - | |
498 | 496 | void free_initmem(void) |
499 | 497 | { |
500 | - unsigned long freed; | |
501 | - | |
502 | - freed = prom_free_prom_memory(); | |
503 | - if (freed) | |
504 | - printk(KERN_INFO "Freeing firmware memory: %ldkb freed\n", | |
505 | - freed >> 10); | |
506 | - | |
498 | + prom_free_prom_memory(); | |
507 | 499 | free_init_pages("unused kernel memory", |
508 | 500 | __pa_symbol(&__init_begin), |
509 | 501 | __pa_symbol(&__init_end)); |
arch/mips/momentum/jaguar_atx/prom.c
arch/mips/momentum/ocelot_3/prom.c
arch/mips/momentum/ocelot_c/prom.c
arch/mips/momentum/ocelot_g/prom.c
arch/mips/philips/pnx8550/common/prom.c
arch/mips/pmc-sierra/yosemite/prom.c
arch/mips/qemu/q-mem.c
arch/mips/sgi-ip22/ip22-mc.c
arch/mips/sgi-ip27/ip27-memory.c
arch/mips/sgi-ip32/ip32-memory.c
arch/mips/sibyte/cfe/setup.c
... | ... | @@ -343,10 +343,9 @@ |
343 | 343 | prom_meminit(); |
344 | 344 | } |
345 | 345 | |
346 | -unsigned long __init prom_free_prom_memory(void) | |
346 | +void __init prom_free_prom_memory(void) | |
347 | 347 | { |
348 | 348 | /* Not sure what I'm supposed to do here. Nothing, I think */ |
349 | - return 0; | |
350 | 349 | } |
351 | 350 | |
352 | 351 | void prom_putchar(char c) |
arch/mips/sibyte/sb1250/prom.c
arch/mips/sni/sniprom.c
arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_prom.c
arch/mips/tx4938/toshiba_rbtx4938/prom.c
arch/mips/vr41xx/common/init.c
include/asm-mips/bootinfo.h
... | ... | @@ -243,6 +243,10 @@ |
243 | 243 | extern void add_memory_region(phys_t start, phys_t size, long type); |
244 | 244 | |
245 | 245 | extern void prom_init(void); |
246 | +extern void prom_free_prom_memory(void); | |
247 | + | |
248 | +extern void free_init_pages(const char *what, | |
249 | + unsigned long begin, unsigned long end); | |
246 | 250 | |
247 | 251 | /* |
248 | 252 | * Initial kernel command line, usually setup by prom_init() |
include/asm-mips/mips-boards/prom.h
... | ... | @@ -33,7 +33,6 @@ |
33 | 33 | extern void prom_init_cmdline(void); |
34 | 34 | extern void prom_meminit(void); |
35 | 35 | extern void prom_fixup_mem_map(unsigned long start_mem, unsigned long end_mem); |
36 | -extern unsigned long prom_free_prom_memory (void); | |
37 | 36 | extern void mips_display_message(const char *str); |
38 | 37 | extern void mips_display_word(unsigned int num); |
39 | 38 | extern int get_ethernet_addr(char *ethernet_addr); |