summaryrefslogtreecommitdiffstats
path: root/mm/vmacache.c
diff options
context:
space:
mode:
authorPingfan Liu <kernelfans@gmail.com>2020-01-30 22:11:10 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2020-01-31 10:30:36 -0800
commit1f503443e7df8dc8366608b4d810ce2d6669827c (patch)
treeac9f640d1d412b683aeed1ea209cd5f867a54a77 /mm/vmacache.c
parentc7a91bc7c2e17e0a9c8b9745a2cb118891218fd1 (diff)
downloadlinux-1f503443e7df8dc8366608b4d810ce2d6669827c.tar.gz
linux-1f503443e7df8dc8366608b4d810ce2d6669827c.tar.bz2
linux-1f503443e7df8dc8366608b4d810ce2d6669827c.zip
mm/sparse.c: reset section's mem_map when fully deactivated
After commit ba72b4c8cf60 ("mm/sparsemem: support sub-section hotplug"), when a mem section is fully deactivated, section_mem_map still records the section's start pfn, which is not used any more and will be reassigned during re-addition. In analogy with alloc/free pattern, it is better to clear all fields of section_mem_map. Beside this, it breaks the user space tool "makedumpfile" [1], which makes assumption that a hot-removed section has mem_map as NULL, instead of checking directly against SECTION_MARKED_PRESENT bit. (makedumpfile will be better to change the assumption, and need a patch) The bug can be reproduced on IBM POWERVM by "drmgr -c mem -r -q 5" , trigger a crash, and save vmcore by makedumpfile [1]: makedumpfile, commit e73016540293 ("[v1.6.7] Update version") Link: http://lkml.kernel.org/r/1579487594-28889-1-git-send-email-kernelfans@gmail.com Signed-off-by: Pingfan Liu <kernelfans@gmail.com> Acked-by: Michal Hocko <mhocko@suse.com> Acked-by: David Hildenbrand <david@redhat.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Oscar Salvador <osalvador@suse.de> Cc: Baoquan He <bhe@redhat.com> Cc: Qian Cai <cai@lca.pw> Cc: Kazuhito Hagio <k-hagio@ab.jp.nec.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/vmacache.c')
0 files changed, 0 insertions, 0 deletions