Revert "mm: Check if section present during memory block (un)registering"
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Oct 2015 17:57:25 +0000 (10:57 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Oct 2015 17:57:25 +0000 (10:57 -0700)
This reverts commit 7568fb63f57ac8672f8bf2018171255441238882 as it's
already in Linus's tree through a different patch.

Reported-by: Tony Luck <tony.luck@intel.com>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: stable@vger.kernel.org #v3.15
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/node.c

index ae98eba..560751b 100644 (file)
@@ -390,18 +390,7 @@ int register_mem_sect_under_node(struct memory_block *mem_blk, int nid)
        sect_end_pfn = section_nr_to_pfn(mem_blk->end_section_nr);
        sect_end_pfn += PAGES_PER_SECTION - 1;
        for (pfn = sect_start_pfn; pfn <= sect_end_pfn; pfn++) {
-               int page_nid, scn_nr;
-
-               /*
-                * memory block could have several absent sections from start.
-                * skip pfn range from absent section
-                */
-               scn_nr = pfn_to_section_nr(pfn);
-               if (!present_section_nr(scn_nr)) {
-                       pfn = round_down(pfn + PAGES_PER_SECTION,
-                                        PAGES_PER_SECTION) - 1;
-                       continue;
-               }
+               int page_nid;
 
                /*
                 * memory block could have several absent sections from start.
@@ -447,22 +436,10 @@ int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
                return -ENOMEM;
        nodes_clear(*unlinked_nodes);
 
-       sect_start_pfn = section_nr_to_pfn(mem_blk->start_section_nr);
-       sect_end_pfn = section_nr_to_pfn(mem_blk->end_section_nr);
-       sect_end_pfn += PAGES_PER_SECTION - 1;
+       sect_start_pfn = section_nr_to_pfn(phys_index);
+       sect_end_pfn = sect_start_pfn + PAGES_PER_SECTION - 1;
        for (pfn = sect_start_pfn; pfn <= sect_end_pfn; pfn++) {
-               int nid, scn_nr;
-
-               /*
-                * memory block could have several absent sections from start.
-                * skip pfn range from absent section
-                */
-               scn_nr = pfn_to_section_nr(pfn);
-               if (!present_section_nr(scn_nr)) {
-                       pfn = round_down(pfn + PAGES_PER_SECTION,
-                                        PAGES_PER_SECTION) - 1;
-                       continue;
-               }
+               int nid;
 
                nid = get_nid_for_pfn(pfn);
                if (nid < 0)