summaryrefslogtreecommitdiffstats
path: root/arch/sparc/include/asm/highmem.h
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2021-01-23 21:01:52 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2021-01-24 10:34:52 -0800
commitdad4e5b390866ca902653df0daa864ae4b8d4147 (patch)
treeaaaa9cba064cbce1e8a9810eafbf8fba49bcb581 /arch/sparc/include/asm/highmem.h
parent251b5497c5c95e4548e3d33cbda3f638fea2c11e (diff)
downloadlinux-dad4e5b390866ca902653df0daa864ae4b8d4147.tar.bz2
mm: fix page reference leak in soft_offline_page()
The conversion to move pfn_to_online_page() internal to soft_offline_page() missed that the get_user_pages() reference taken by the madvise() path needs to be dropped when pfn_to_online_page() fails. Note the direct sysfs-path to soft_offline_page() does not perform a get_user_pages() lookup. When soft_offline_page() is handed a pfn_valid() && !pfn_to_online_page() pfn the kernel hangs at dax-device shutdown due to a leaked reference. Link: https://lkml.kernel.org/r/161058501210.1840162.8108917599181157327.stgit@dwillia2-desk3.amr.corp.intel.com Fixes: feec24a6139d ("mm, soft-offline: convert parameter to pfn") Signed-off-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: David Hildenbrand <david@redhat.com> Reviewed-by: Oscar Salvador <osalvador@suse.de> Reviewed-by: Naoya Horiguchi <naoya.horiguchi@nec.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Qian Cai <cai@lca.pw> 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 'arch/sparc/include/asm/highmem.h')
0 files changed, 0 insertions, 0 deletions