|
@@ -146,34 +146,14 @@ void __init mem_init(void)
|
|
|
initsize >> 10);
|
|
|
}
|
|
|
|
|
|
-static inline void free_area(unsigned long addr, unsigned long end, char *s)
|
|
|
-{
|
|
|
- unsigned int size = (end - addr) >> 10;
|
|
|
-
|
|
|
- for (; addr < end; addr += PAGE_SIZE) {
|
|
|
- struct page *page = virt_to_page(addr);
|
|
|
- ClearPageReserved(page);
|
|
|
- init_page_count(page);
|
|
|
- free_page(addr);
|
|
|
- totalram_pages++;
|
|
|
- }
|
|
|
-
|
|
|
- if (size && s)
|
|
|
- printk(KERN_INFO "Freeing %s memory: %dK (%lx - %lx)\n",
|
|
|
- s, size, end - (size << 10), end);
|
|
|
-}
|
|
|
-
|
|
|
void free_initmem(void)
|
|
|
{
|
|
|
- free_area((unsigned long)__init_begin, (unsigned long)__init_end,
|
|
|
- "init");
|
|
|
+ free_initmem_default(0);
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_BLK_DEV_INITRD
|
|
|
-
|
|
|
void free_initrd_mem(unsigned long start, unsigned long end)
|
|
|
{
|
|
|
- free_area(start, end, "initrd");
|
|
|
+ free_reserved_area(start, end, 0, "initrd");
|
|
|
}
|
|
|
-
|
|
|
#endif
|