On 01/20/20 at 09:33am, David Hildenbrand wrote: > > > > Am 20.01.2020 um 03:25 schrieb Pingfan Liu <piliu@xxxxxxxxxx>: > > > > 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 <piliu@xxxxxxxxxx> > > To: kexec@xxxxxxxxxxxxxxxxxxx > > Cc: Kazuhito Hagio <k-hagio@xxxxxxxxxxxxx> > > Cc: Baoquan He <bhe@xxxxxxxxxx> > > Cc: David Hildenbrand <david@xxxxxxxxxx> > > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > > Cc: Dan Williams <dan.j.williams@xxxxxxxxx> > > Cc: Oscar Salvador <osalvador@xxxxxxx> > > Cc: Michal Hocko <mhocko@xxxxxxxxxx> > > Cc: Qian Cai <cai@xxxxxx> > > --- > > 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; > > Why was that added in the first place? This looks like dome compat handling to me. Are we sure we can remove it? The original code assumes that there are only two kinds of mem_section, one is empty value, the second is a present one. This removing behaves the same as the old code, I don't see a problem with it. I tried to understand the code, but I don't know why it need call validate_mem_section() twice and compare the returned value. _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec