diff options
-rw-r--r-- | arch/metag/mm/init.c | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/arch/metag/mm/init.c b/arch/metag/mm/init.c index 504a398d5f8b..c6784fb3a334 100644 --- a/arch/metag/mm/init.c +++ b/arch/metag/mm/init.c | |||
@@ -412,32 +412,15 @@ void __init mem_init(void) | |||
412 | return; | 412 | return; |
413 | } | 413 | } |
414 | 414 | ||
415 | static void free_init_pages(char *what, unsigned long begin, unsigned long end) | ||
416 | { | ||
417 | unsigned long addr; | ||
418 | |||
419 | for (addr = begin; addr < end; addr += PAGE_SIZE) { | ||
420 | ClearPageReserved(virt_to_page(addr)); | ||
421 | init_page_count(virt_to_page(addr)); | ||
422 | memset((void *)addr, POISON_FREE_INITMEM, PAGE_SIZE); | ||
423 | free_page(addr); | ||
424 | totalram_pages++; | ||
425 | } | ||
426 | pr_info("Freeing %s: %luk freed\n", what, (end - begin) >> 10); | ||
427 | } | ||
428 | |||
429 | void free_initmem(void) | 415 | void free_initmem(void) |
430 | { | 416 | { |
431 | free_init_pages("unused kernel memory", | 417 | free_initmem_default(POISON_FREE_INITMEM); |
432 | (unsigned long)(&__init_begin), | ||
433 | (unsigned long)(&__init_end)); | ||
434 | } | 418 | } |
435 | 419 | ||
436 | #ifdef CONFIG_BLK_DEV_INITRD | 420 | #ifdef CONFIG_BLK_DEV_INITRD |
437 | void free_initrd_mem(unsigned long start, unsigned long end) | 421 | void free_initrd_mem(unsigned long start, unsigned long end) |
438 | { | 422 | { |
439 | end = end & PAGE_MASK; | 423 | free_reserved_area(start, end, POISON_FREE_INITMEM, "initrd"); |
440 | free_init_pages("initrd memory", start, end); | ||
441 | } | 424 | } |
442 | #endif | 425 | #endif |
443 | 426 | ||