Merge tag 'libnvdimm-for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdim...
[linux-2.6-block.git] / mm / memory_hotplug.c
index 12df8a5fadcc78c0bfcdb72ece882d760458445a..b2bd52ff760571093c1eb39cbfdc4073139e2671 100644 (file)
@@ -184,7 +184,7 @@ static void register_page_bootmem_info_section(unsigned long start_pfn)
        for (i = 0; i < mapsize; i++, page++)
                get_page_bootmem(section_nr, page, SECTION_INFO);
 
-       usemap = __nr_to_section(section_nr)->pageblock_flags;
+       usemap = ms->pageblock_flags;
        page = virt_to_page(usemap);
 
        mapsize = PAGE_ALIGN(usemap_size()) >> PAGE_SHIFT;
@@ -200,9 +200,6 @@ static void register_page_bootmem_info_section(unsigned long start_pfn)
        struct mem_section *ms;
        struct page *page, *memmap;
 
-       if (!pfn_valid(start_pfn))
-               return;
-
        section_nr = pfn_to_section_nr(start_pfn);
        ms = __nr_to_section(section_nr);
 
@@ -210,7 +207,7 @@ static void register_page_bootmem_info_section(unsigned long start_pfn)
 
        register_page_bootmem_memmap(section_nr, memmap, PAGES_PER_SECTION);
 
-       usemap = __nr_to_section(section_nr)->pageblock_flags;
+       usemap = ms->pageblock_flags;
        page = virt_to_page(usemap);
 
        mapsize = PAGE_ALIGN(usemap_size()) >> PAGE_SHIFT;
@@ -1634,7 +1631,7 @@ repeat:
                goto failed_removal;
 
        cond_resched();
-       lru_add_drain_all_cpuslocked();
+       lru_add_drain_all();
        drain_all_pages(zone);
 
        pfn = scan_movable_pages(start_pfn, end_pfn);