After kernel commit ba72b4c8cf60 ("mm/sparsemem: support sub-section
hotplug"), when hot-removed, section_mem_map is still encoded with section
start pfn, not NULL. This break the current makedumpfile.

Whatever section_mem_map coding info after hot-removed, it is reliable
just to work on SECTION_MARKED_PRESENT bit. Fixing makedumpfile by this
way.

Signed-off-by: Pingfan Liu <pi...@redhat.com>
To: kexec@lists.infradead.org
Cc: Kazuhito Hagio <k-ha...@ab.jp.nec.com>
Cc: Baoquan He <b...@redhat.com>
Cc: David Hildenbrand <da...@redhat.com>
Cc: Andrew Morton <a...@linux-foundation.org>
Cc: Dan Williams <dan.j.willi...@intel.com>
Cc: Oscar Salvador <osalva...@suse.de>
Cc: Michal Hocko <mho...@kernel.org>
Cc: Qian Cai <c...@lca.pw>
---
 makedumpfile.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/makedumpfile.c b/makedumpfile.c
index e290fbd..ab40a58 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -3406,8 +3406,6 @@ section_mem_map_addr(unsigned long addr, unsigned long 
*map_mask)
        map = ULONG(mem_section + OFFSET(mem_section.section_mem_map));
        mask = SECTION_MAP_MASK;
        *map_mask = map & ~mask;
-       if (map == 0x0)
-               *map_mask |= SECTION_MARKED_PRESENT;
        map &= mask;
        free(mem_section);
 
@@ -3453,10 +3451,8 @@ validate_mem_section(unsigned long *mem_sec,
                        mem_map = NOT_MEMMAP_ADDR;
                } else {
                        mem_map = section_mem_map_addr(section, &map_mask);
+                       /* for either no mem_map or hot-removed */
                        if (!(map_mask & SECTION_MARKED_PRESENT)) {
-                               return FALSE;
-                       }
-                       if (mem_map == 0) {
                                mem_map = NOT_MEMMAP_ADDR;
                        } else {
                                mem_map = sparse_decode_mem_map(mem_map,
-- 
2.7.5


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to