diff options
author | Jiang Liu <liuj97@gmail.com> | 2013-04-29 18:06:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-04-29 18:54:31 -0400 |
commit | c941836819569abd5319f93f68638b65e2dfecc5 (patch) | |
tree | 83f07861395a73c0daf395eca4d728a3ed1331b0 /arch/metag | |
parent | d2309a1996dce1ea85b322a3dd36520493473494 (diff) |
mm/metag: 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: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/metag')
-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 | ||