diff options
Diffstat (limited to 'arch/ia64/mm/init.c')
| -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 20bc967c720..d1fe4b40260 100644 --- a/arch/ia64/mm/init.c +++ b/arch/ia64/mm/init.c @@ -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));  	}  }  |