diff options
| -rw-r--r-- | mm/page_alloc.c | 10 | ||||
| -rw-r--r-- | mm/sparse.c | 10 |
2 files changed, 10 insertions, 10 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 8dfd13f724d9..77e4d3c5c57b 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
| @@ -5646,16 +5646,6 @@ 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 | |||
| 5659 | for_each_mem_pfn_range(i, nid, &start_pfn, &end_pfn, &this_nid) | 5649 | for_each_mem_pfn_range(i, nid, &start_pfn, &end_pfn, &this_nid) |
| 5660 | memory_present(this_nid, start_pfn, end_pfn); | 5650 | memory_present(this_nid, start_pfn, end_pfn); |
| 5661 | } | 5651 | } |
diff --git a/mm/sparse.c b/mm/sparse.c index b00a97398795..d294148ba395 100644 --- a/mm/sparse.c +++ b/mm/sparse.c | |||
| @@ -206,6 +206,16 @@ void __init memory_present(int nid, unsigned long start, unsigned long end) | |||
| 206 | { | 206 | { |
| 207 | unsigned long pfn; | 207 | unsigned long pfn; |
| 208 | 208 | ||
| 209 | #ifdef CONFIG_SPARSEMEM_EXTREME | ||
| 210 | if (unlikely(!mem_section)) { | ||
| 211 | unsigned long size, align; | ||
| 212 | |||
| 213 | size = sizeof(struct mem_section) * NR_SECTION_ROOTS; | ||
| 214 | align = 1 << (INTERNODE_CACHE_SHIFT); | ||
| 215 | mem_section = memblock_virt_alloc(size, align); | ||
| 216 | } | ||
| 217 | #endif | ||
| 218 | |||
| 209 | start &= PAGE_SECTION_MASK; | 219 | start &= PAGE_SECTION_MASK; |
| 210 | mminit_validate_memmodel_limits(&start, &end); | 220 | mminit_validate_memmodel_limits(&start, &end); |
| 211 | for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION) { | 221 | for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION) { |
