summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJiang Liu <liuj97@gmail.com>2013-07-04 00:04:24 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2013-07-04 01:07:38 +0200
commitce7549e1d824e08871beddb6c7945635dfc4341d (patch)
treeccd105f748dcf5cc4b4408eb7b92492cf3681a36 /arch
parentmm: introduce helper function set_max_mapnr() (diff)
downloadlinux-ce7549e1d824e08871beddb6c7945635dfc4341d.tar.xz
linux-ce7549e1d824e08871beddb6c7945635dfc4341d.zip
mm/AVR32: prepare for killing free_all_bootmem_node()
Prepare for killing free_all_bootmem_node() by using free_all_bootmem() instead. Signed-off-by: Jiang Liu <jiang.liu@huawei.com> Cc: Haavard Skinnemoen <hskinnemoen@gmail.com> Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/avr32/mm/init.c21
1 files changed, 5 insertions, 16 deletions
diff --git a/arch/avr32/mm/init.c b/arch/avr32/mm/init.c
index 0fc04b9323cf..def5391d927a 100644
--- a/arch/avr32/mm/init.c
+++ b/arch/avr32/mm/init.c
@@ -103,23 +103,12 @@ void __init mem_init(void)
pg_data_t *pgdat;
high_memory = NULL;
+ for_each_online_pgdat(pgdat)
+ high_memory = max_t(void *, high_memory,
+ __va(pgdat_end_pfn(pgdat) << PAGE_SHIFT));
- /* this will put all low memory onto the freelists */
- for_each_online_pgdat(pgdat) {
- void *node_high_memory;
-
- if (pgdat->node_spanned_pages != 0)
- free_all_bootmem_node(pgdat);
-
- node_high_memory = (void *)((pgdat->node_start_pfn
- + pgdat->node_spanned_pages)
- << PAGE_SHIFT);
- if (node_high_memory > high_memory)
- high_memory = node_high_memory;
- }
-
- max_mapnr = MAP_NR(high_memory);
-
+ set_max_mapnr(MAP_NR(high_memory));
+ free_all_bootmem();
mem_init_print_info(NULL);
}