diff options
author | Ingo Molnar <mingo@kernel.org> | 2017-11-10 10:05:30 +0300 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-11-10 10:05:30 +0300 |
commit | d04fdafc066fed10cc9610b2f36f1d0ff0327864 (patch) | |
tree | f3365e4bf1064737a36e5488641a14e54fc173bc /mm/sparse.c | |
parent | 7980f029d05d8a3b4634aa6952e1ec51bce9431f (diff) | |
parent | c5e260890d5fd6687287f2b532c738a359a61a82 (diff) | |
download | linux-d04fdafc066fed10cc9610b2f36f1d0ff0327864.tar.xz |
Merge branch 'x86/mm' into x86/asm, to merge branches
Most of x86/mm is already in x86/asm, so merge the rest too.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'mm/sparse.c')
-rw-r--r-- | mm/sparse.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/mm/sparse.c b/mm/sparse.c index 044138852baf..60805abf98af 100644 --- a/mm/sparse.c +++ b/mm/sparse.c @@ -207,6 +207,16 @@ void __init memory_present(int nid, unsigned long start, unsigned long end) { unsigned long pfn; +#ifdef CONFIG_SPARSEMEM_EXTREME + if (unlikely(!mem_section)) { + unsigned long size, align; + + size = sizeof(struct mem_section) * NR_SECTION_ROOTS; + align = 1 << (INTERNODE_CACHE_SHIFT); + mem_section = memblock_virt_alloc(size, align); + } +#endif + start &= PAGE_SECTION_MASK; mminit_validate_memmodel_limits(&start, &end); for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION) { |