Commit c44e8d5e47b8ba672440b92eab0735628469116c

Authored by Atsushi Nemoto
Committed by Ralf Baechle
1 parent 2fa7937bd8

[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
... ... @@ -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
... ... @@ -149,9 +149,8 @@
149 149 return 0;
150 150 }
151 151  
152   -unsigned long __init prom_free_prom_memory(void)
  152 +void __init prom_free_prom_memory(void)
153 153 {
154   - return 0;
155 154 }
156 155  
157 156 EXPORT_SYMBOL(prom_getcmdline);
arch/mips/cobalt/setup.c
... ... @@ -204,9 +204,8 @@
204 204 add_memory_region(0x0, memsz, BOOT_MEM_RAM);
205 205 }
206 206  
207   -unsigned long __init prom_free_prom_memory(void)
  207 +void __init prom_free_prom_memory(void)
208 208 {
209 209 /* Nothing to do! */
210   - return 0;
211 210 }
arch/mips/ddb5xxx/common/prom.c
... ... @@ -59,9 +59,8 @@
59 59 #endif
60 60 }
61 61  
62   -unsigned long __init prom_free_prom_memory(void)
  62 +void __init prom_free_prom_memory(void)
63 63 {
64   - return 0;
65 64 }
66 65  
67 66 #if defined(CONFIG_DDB5477)
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
... ... @@ -59,9 +59,8 @@
59 59 */
60 60 extern struct pci_ops galileo_pci_ops;
61 61  
62   -unsigned long __init prom_free_prom_memory(void)
  62 +void __init prom_free_prom_memory(void)
63 63 {
64   - return 0;
65 64 }
66 65  
67 66 /*
arch/mips/gt64120/momenco_ocelot/prom.c
... ... @@ -67,8 +67,7 @@
67 67 add_memory_region(0, 64 << 20, BOOT_MEM_RAM);
68 68 }
69 69  
70   -unsigned long __init prom_free_prom_memory(void)
  70 +void __init prom_free_prom_memory(void)
71 71 {
72   - return 0;
73 72 }
arch/mips/gt64120/wrppmc/setup.c
... ... @@ -93,9 +93,8 @@
93 93 }
94 94 #endif /* WRPPMC_EARLY_DEBUG */
95 95  
96   -unsigned long __init prom_free_prom_memory(void)
  96 +void __init prom_free_prom_memory(void)
97 97 {
98   - return 0;
99 98 }
100 99  
101 100 #ifdef CONFIG_SERIAL_8250
arch/mips/jmr3927/common/prom.c
... ... @@ -75,8 +75,7 @@
75 75 *cp = '\0';
76 76 }
77 77  
78   -unsigned long __init prom_free_prom_memory(void)
  78 +void __init prom_free_prom_memory(void)
79 79 {
80   - return 0;
81 80 }
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 }
... ... @@ -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
... ... @@ -235,9 +235,8 @@
235 235 #endif
236 236 }
237 237  
238   -unsigned long __init prom_free_prom_memory(void)
  238 +void __init prom_free_prom_memory(void)
239 239 {
240   - return 0;
241 240 }
242 241  
243 242 void __init prom_fixup_mem_map(unsigned long start, unsigned long end)
arch/mips/momentum/ocelot_3/prom.c
... ... @@ -180,9 +180,8 @@
180 180 #endif
181 181 }
182 182  
183   -unsigned long __init prom_free_prom_memory(void)
  183 +void __init prom_free_prom_memory(void)
184 184 {
185   - return 0;
186 185 }
187 186  
188 187 void __init prom_fixup_mem_map(unsigned long start, unsigned long end)
arch/mips/momentum/ocelot_c/prom.c
... ... @@ -178,8 +178,7 @@
178 178 #endif
179 179 }
180 180  
181   -unsigned long __init prom_free_prom_memory(void)
  181 +void __init prom_free_prom_memory(void)
182 182 {
183   - return 0;
184 183 }
arch/mips/momentum/ocelot_g/prom.c
... ... @@ -79,8 +79,7 @@
79 79 }
80 80 }
81 81  
82   -unsigned long __init prom_free_prom_memory(void)
  82 +void __init prom_free_prom_memory(void)
83 83 {
84   - return 0;
85 84 }
arch/mips/philips/pnx8550/common/prom.c
... ... @@ -106,9 +106,8 @@
106 106 return 0;
107 107 }
108 108  
109   -unsigned long __init prom_free_prom_memory(void)
  109 +void __init prom_free_prom_memory(void)
110 110 {
111   - return 0;
112 111 }
113 112  
114 113 extern int pnx8550_console_port;
arch/mips/pmc-sierra/yosemite/prom.c
... ... @@ -132,9 +132,8 @@
132 132 prom_grab_secondary();
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 void __init prom_fixup_mem_map(unsigned long start, unsigned long end)
arch/mips/qemu/q-mem.c
1 1 #include <linux/init.h>
2 2  
3   -unsigned long __init prom_free_prom_memory(void)
  3 +void __init prom_free_prom_memory(void)
4 4 {
5   - return 0UL;
6 5 }
arch/mips/sgi-ip22/ip22-mc.c
... ... @@ -202,8 +202,7 @@
202 202 }
203 203  
204 204 void __init prom_meminit(void) {}
205   -unsigned long __init prom_free_prom_memory(void)
  205 +void __init prom_free_prom_memory(void)
206 206 {
207   - return 0;
208 207 }
arch/mips/sgi-ip27/ip27-memory.c
... ... @@ -498,10 +498,9 @@
498 498 }
499 499 }
500 500  
501   -unsigned long __init prom_free_prom_memory(void)
  501 +void __init prom_free_prom_memory(void)
502 502 {
503 503 /* We got nothing to free here ... */
504   - return 0;
505 504 }
506 505  
507 506 extern void pagetable_init(void);
arch/mips/sgi-ip32/ip32-memory.c
... ... @@ -43,8 +43,7 @@
43 43 }
44 44  
45 45  
46   -unsigned long __init prom_free_prom_memory (void)
  46 +void __init prom_free_prom_memory(void)
47 47 {
48   - return 0;
49 48 }
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
... ... @@ -87,10 +87,9 @@
87 87 prom_meminit();
88 88 }
89 89  
90   -unsigned long __init prom_free_prom_memory(void)
  90 +void __init prom_free_prom_memory(void)
91 91 {
92 92 /* Not sure what I'm supposed to do here. Nothing, I think */
93   - return 0;
94 93 }
95 94  
96 95 void prom_putchar(char c)
arch/mips/sni/sniprom.c
... ... @@ -67,9 +67,8 @@
67 67 va_end(args);
68 68 }
69 69  
70   -unsigned long prom_free_prom_memory(void)
  70 +void __init prom_free_prom_memory(void)
71 71 {
72   - return 0;
73 72 }
74 73  
75 74 /*
arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_prom.c
... ... @@ -80,9 +80,8 @@
80 80 add_memory_region(0, msize << 20, BOOT_MEM_RAM);
81 81 }
82 82  
83   -unsigned long __init prom_free_prom_memory(void)
  83 +void __init prom_free_prom_memory(void)
84 84 {
85   - return 0;
86 85 }
87 86  
88 87 const char *get_system_type(void)
arch/mips/tx4938/toshiba_rbtx4938/prom.c
... ... @@ -56,9 +56,8 @@
56 56 return;
57 57 }
58 58  
59   -unsigned long __init prom_free_prom_memory(void)
  59 +void __init prom_free_prom_memory(void)
60 60 {
61   - return 0;
62 61 }
63 62  
64 63 void __init prom_fixup_mem_map(unsigned long start, unsigned long end)
arch/mips/vr41xx/common/init.c
... ... @@ -81,8 +81,7 @@
81 81 }
82 82 }
83 83  
84   -unsigned long __init prom_free_prom_memory (void)
  84 +void __init prom_free_prom_memory(void)
85 85 {
86   - return 0UL;
87 86 }
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);