|
@@ -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);
|
|
|
}
|
|
|
|