|
@@ -154,25 +154,14 @@ ia64_init_addr_space (void)
|
|
|
void
|
|
|
free_initmem (void)
|
|
|
{
|
|
|
- unsigned long addr, eaddr;
|
|
|
-
|
|
|
- addr = (unsigned long) ia64_imva(__init_begin);
|
|
|
- eaddr = (unsigned long) ia64_imva(__init_end);
|
|
|
- while (addr < eaddr) {
|
|
|
- ClearPageReserved(virt_to_page(addr));
|
|
|
- init_page_count(virt_to_page(addr));
|
|
|
- free_page(addr);
|
|
|
- ++totalram_pages;
|
|
|
- addr += PAGE_SIZE;
|
|
|
- }
|
|
|
- printk(KERN_INFO "Freeing unused kernel memory: %ldkB freed\n",
|
|
|
- (__init_end - __init_begin) >> 10);
|
|
|
+ free_reserved_area((unsigned long)ia64_imva(__init_begin),
|
|
|
+ (unsigned long)ia64_imva(__init_end),
|
|
|
+ 0, "unused kernel");
|
|
|
}
|
|
|
|
|
|
void __init
|
|
|
free_initrd_mem (unsigned long start, unsigned long end)
|
|
|
{
|
|
|
- struct page *page;
|
|
|
/*
|
|
|
* EFI uses 4KB pages while the kernel can use 4KB or bigger.
|
|
|
* 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)
|
|
|
for (; start < end; start += PAGE_SIZE) {
|
|
|
if (!virt_addr_valid(start))
|
|
|
continue;
|
|
|
- page = virt_to_page(start);
|
|
|
- ClearPageReserved(page);
|
|
|
- init_page_count(page);
|
|
|
- free_page(start);
|
|
|
- ++totalram_pages;
|
|
|
+ free_reserved_page(virt_to_page(start));
|
|
|
}
|
|
|
}
|
|
|
|