diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 874eb22d22e4..520c83aa0fec 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -7286,12 +7286,10 @@ void __init free_area_init_nodes(unsigned long *max_zone_pfn) /* Print out the early node map */ pr_info("Early memory node ranges\n"); - for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid) { + for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid) pr_info(" node %3d: [mem %#018Lx-%#018Lx]\n", nid, (u64)start_pfn << PAGE_SHIFT, ((u64)end_pfn << PAGE_SHIFT) - 1); - subsection_map_init(start_pfn, end_pfn - start_pfn); - } /* Initialise every node */ mminit_verify_pageflags_layout(); diff --git a/mm/sparse.c b/mm/sparse.c index 0baa2e55cfdd..bca8e6fa72d2 100644 --- a/mm/sparse.c +++ b/mm/sparse.c @@ -533,6 +533,7 @@ static void __init sparse_init_nid(int nid, unsigned long pnum_begin, } check_usemap_section_nr(nid, usage); sparse_init_one_section(__nr_to_section(pnum), pnum, map, usage); + subsection_map_init(section_nr_to_pfn(pnum), PAGES_PER_SECTION); usage = (void *) usage + mem_section_usage_size(); } sparse_buffer_fini();