Commit 12f0cd39 authored by Lorenzo Stoakes's avatar Lorenzo Stoakes Committed by Andrew Morton
Browse files

fs/proc/task_mmu.c: fix make_uffd_wp_huge_pte() huge pte handling

make_uffd_wp_huge_pte() should return after handling a huge_pte_none()
pte.

Link: https://lkml.kernel.org/r/66178124-ebdf-4e23-b8ca-ed3eb8030c81@lucifer.local


Fixes: 03bfbc3a ("mm: remove is_hugetlb_entry_[migration, hwpoisoned]()")
Signed-off-by: default avatarLorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reported-by: default avatarVlastimil Babka <vbabka@suse.cz>
Closes: https://lkml.kernel.org/r/dc483db3-be4d-45f7-8b40-a28f5d8f5738@suse.cz


Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent ce2bba89
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2500,9 +2500,11 @@ static void make_uffd_wp_huge_pte(struct vm_area_struct *vma,
	const unsigned long psize = huge_page_size(hstate_vma(vma));
	softleaf_t entry;

	if (huge_pte_none(ptent))
	if (huge_pte_none(ptent)) {
		set_huge_pte_at(vma->vm_mm, addr, ptep,
				make_pte_marker(PTE_MARKER_UFFD_WP), psize);
		return;
	}

	entry = softleaf_from_pte(ptent);
	if (softleaf_is_hwpoison(entry) || softleaf_is_marker(entry))