diff options
author | Jiang Liu <liuj97@gmail.com> | 2013-04-29 18:06:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-04-29 18:54:30 -0400 |
commit | 66f62594216a8df661239e233736997dba074bbe (patch) | |
tree | 5e1705c636c30b8b9ddf12904a108b294b7a52cd /arch/ia64/mm | |
parent | 0f97580da0ead5cfda2d67afcc8571a86b303516 (diff) |
mm/IA64: use common help functions to free reserved pages
Use common help functions to free reserved pages.
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/ia64/mm')
-rw-r--r-- | arch/ia64/mm/init.c | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c index 20bc967c7209..d1fe4b402601 100644 --- a/arch/ia64/mm/init.c +++ b/arch/ia64/mm/init.c | |||
@@ -154,25 +154,14 @@ ia64_init_addr_space (void) | |||
154 | void | 154 | void |
155 | free_initmem (void) | 155 | free_initmem (void) |
156 | { | 156 | { |
157 | unsigned long addr, eaddr; | 157 | free_reserved_area((unsigned long)ia64_imva(__init_begin), |
158 | 158 | (unsigned long)ia64_imva(__init_end), | |
159 | addr = (unsigned long) ia64_imva(__init_begin); | 159 | 0, "unused kernel"); |
160 | eaddr = (unsigned long) ia64_imva(__init_end); | ||
161 | while (addr < eaddr) { | ||
162 | ClearPageReserved(virt_to_page(addr)); | ||
163 | init_page_count(virt_to_page(addr)); | ||
164 | free_page(addr); | ||
165 | ++totalram_pages; | ||
166 | addr += PAGE_SIZE; | ||
167 | } | ||
168 | printk(KERN_INFO "Freeing unused kernel memory: %ldkB freed\n", | ||
169 | (__init_end - __init_begin) >> 10); | ||
170 | } | 160 | } |
171 | 161 | ||
172 | void __init | 162 | void __init |
173 | free_initrd_mem (unsigned long start, unsigned long end) | 163 | free_initrd_mem (unsigned long start, unsigned long end) |
174 | { | 164 | { |
175 | struct page *page; | ||
176 | /* | 165 | /* |
177 | * EFI uses 4KB pages while the kernel can use 4KB or bigger. | 166 | * EFI uses 4KB pages while the kernel can use 4KB or bigger. |
178 | * Thus EFI and the kernel may have different page sizes. It is | 167 | * Thus EFI and the kernel may have different page sizes. It is |
@@ -213,11 +202,7 @@ free_initrd_mem (unsigned long start, unsigned long end) | |||
213 | for (; start < end; start += PAGE_SIZE) { | 202 | for (; start < end; start += PAGE_SIZE) { |
214 | if (!virt_addr_valid(start)) | 203 | if (!virt_addr_valid(start)) |
215 | continue; | 204 | continue; |
216 | page = virt_to_page(start); | 205 | free_reserved_page(virt_to_page(start)); |
217 | ClearPageReserved(page); | ||
218 | init_page_count(page); | ||
219 | free_page(start); | ||
220 | ++totalram_pages; | ||
221 | } | 206 | } |
222 | } | 207 | } |
223 | 208 | ||