diff options
author | Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 2006-12-29 10:43:59 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2007-02-06 11:53:09 -0500 |
commit | c44e8d5e47b8ba672440b92eab0735628469116c (patch) | |
tree | f85364a9482003bf51e3cb10d0725ff3f57ce87c /arch/mips/arc | |
parent | 2fa7937bd8922e1fe4aae6a45e7e787fa45d6043 (diff) |
[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>
Diffstat (limited to 'arch/mips/arc')
-rw-r--r-- | arch/mips/arc/memory.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/arch/mips/arc/memory.c b/arch/mips/arc/memory.c index 8a9ef58cc399..456cb81a32d9 100644 --- a/arch/mips/arc/memory.c +++ b/arch/mips/arc/memory.c | |||
@@ -141,30 +141,20 @@ void __init prom_meminit(void) | |||
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 | unsigned long addr; | 146 | unsigned long addr; |
148 | int i; | 147 | int i; |
149 | 148 | ||
150 | if (prom_flags & PROM_FLAG_DONT_FREE_TEMP) | 149 | if (prom_flags & PROM_FLAG_DONT_FREE_TEMP) |
151 | return 0; | 150 | return; |
152 | 151 | ||
153 | for (i = 0; i < boot_mem_map.nr_map; i++) { | 152 | for (i = 0; i < boot_mem_map.nr_map; i++) { |
154 | if (boot_mem_map.map[i].type != BOOT_MEM_ROM_DATA) | 153 | if (boot_mem_map.map[i].type != BOOT_MEM_ROM_DATA) |
155 | continue; | 154 | continue; |
156 | 155 | ||
157 | addr = boot_mem_map.map[i].addr; | 156 | addr = boot_mem_map.map[i].addr; |
158 | while (addr < boot_mem_map.map[i].addr | 157 | free_init_pages("prom memory", |
159 | + boot_mem_map.map[i].size) { | 158 | addr, addr + 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 | } | ||
166 | } | 159 | } |
167 | printk(KERN_INFO "Freeing prom memory: %ldkb freed\n", freed >> 10); | ||
168 | |||
169 | return freed; | ||
170 | } | 160 | } |