summaryrefslogtreecommitdiffstats
path: root/mm/page_alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r--mm/page_alloc.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 05c0a59323bd..6da3169d3750 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -5103,8 +5103,17 @@ void __meminit memmap_init_zone(unsigned long size, int nid, unsigned long zone,
5103 if (context != MEMMAP_EARLY) 5103 if (context != MEMMAP_EARLY)
5104 goto not_early; 5104 goto not_early;
5105 5105
5106 if (!early_pfn_valid(pfn)) 5106 if (!early_pfn_valid(pfn)) {
5107#ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP
5108 /*
5109 * Skip to the pfn preceding the next valid one (or
5110 * end_pfn), such that we hit a valid pfn (or end_pfn)
5111 * on our next iteration of the loop.
5112 */
5113 pfn = memblock_next_valid_pfn(pfn, end_pfn) - 1;
5114#endif
5107 continue; 5115 continue;
5116 }
5108 if (!early_pfn_in_nid(pfn, nid)) 5117 if (!early_pfn_in_nid(pfn, nid))
5109 continue; 5118 continue;
5110 if (!update_defer_init(pgdat, pfn, end_pfn, &nr_initialised)) 5119 if (!update_defer_init(pgdat, pfn, end_pfn, &nr_initialised))