diff options
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r-- | mm/page_alloc.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 77e4d3c5c57b..8dfd13f724d9 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -5646,6 +5646,16 @@ void __init sparse_memory_present_with_active_regions(int nid) | |||
5646 | unsigned long start_pfn, end_pfn; | 5646 | unsigned long start_pfn, end_pfn; |
5647 | int i, this_nid; | 5647 | int i, this_nid; |
5648 | 5648 | ||
5649 | #ifdef CONFIG_SPARSEMEM_EXTREME | ||
5650 | if (!mem_section) { | ||
5651 | unsigned long size, align; | ||
5652 | |||
5653 | size = sizeof(struct mem_section) * NR_SECTION_ROOTS; | ||
5654 | align = 1 << (INTERNODE_CACHE_SHIFT); | ||
5655 | mem_section = memblock_virt_alloc(size, align); | ||
5656 | } | ||
5657 | #endif | ||
5658 | |||
5649 | for_each_mem_pfn_range(i, nid, &start_pfn, &end_pfn, &this_nid) | 5659 | for_each_mem_pfn_range(i, nid, &start_pfn, &end_pfn, &this_nid) |
5650 | memory_present(this_nid, start_pfn, end_pfn); | 5660 | memory_present(this_nid, start_pfn, end_pfn); |
5651 | } | 5661 | } |