diff options
Diffstat (limited to 'mm/page_alloc.c')
| -rw-r--r-- | mm/page_alloc.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 1521100f1e63..a790ef4be74e 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -6383,7 +6383,7 @@ void __paginginit free_area_init_node(int nid, unsigned long *zones_size,  	free_area_init_core(pgdat);  } -#ifdef CONFIG_HAVE_MEMBLOCK +#if defined(CONFIG_HAVE_MEMBLOCK) && !defined(CONFIG_FLAT_NODE_MEM_MAP)  /*   * Only struct pages that are backed by physical memory are zeroed and   * initialized by going through __init_single_page(). But, there are some @@ -6421,7 +6421,7 @@ void __paginginit zero_resv_unavail(void)  	if (pgcnt)  		pr_info("Reserved but unavailable: %lld pages", pgcnt);  } -#endif /* CONFIG_HAVE_MEMBLOCK */ +#endif /* CONFIG_HAVE_MEMBLOCK && !CONFIG_FLAT_NODE_MEM_MAP */  #ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP @@ -6847,6 +6847,7 @@ void __init free_area_init_nodes(unsigned long *max_zone_pfn)  	/* Initialise every node */  	mminit_verify_pageflags_layout();  	setup_nr_node_ids(); +	zero_resv_unavail();  	for_each_online_node(nid) {  		pg_data_t *pgdat = NODE_DATA(nid);  		free_area_init_node(nid, NULL, @@ -6857,7 +6858,6 @@ void __init free_area_init_nodes(unsigned long *max_zone_pfn)  			node_set_state(nid, N_MEMORY);  		check_for_memory(pgdat, nid);  	} -	zero_resv_unavail();  }  static int __init cmdline_parse_core(char *p, unsigned long *core, @@ -7033,9 +7033,9 @@ void __init set_dma_reserve(unsigned long new_dma_reserve)  void __init free_area_init(unsigned long *zones_size)  { +	zero_resv_unavail();  	free_area_init_node(0, zones_size,  			__pa(PAGE_OFFSET) >> PAGE_SHIFT, NULL); -	zero_resv_unavail();  }  static int page_alloc_cpu_dead(unsigned int cpu)  |