]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
fs/proc/task_mmu.c: fix make_uffd_wp_huge_pte() huge pte handling
authorLorenzo Stoakes <lorenzo.stoakes@oracle.com>
Thu, 27 Nov 2025 17:45:17 +0000 (17:45 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Sat, 29 Nov 2025 18:41:10 +0000 (10:41 -0800)
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: 03bfbc3ad6e4 ("mm: remove is_hugetlb_entry_[migration, hwpoisoned]()")
Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reported-by: Vlastimil Babka <vbabka@suse.cz>
Closes: https://lkml.kernel.org/r/dc483db3-be4d-45f7-8b40-a28f5d8f5738@suse.cz
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/proc/task_mmu.c

index d00ac179d9730f86753a64af7ac027d921f68a3b..81dfc26bfae8af1e5d5cd579d5f25a19ae0069b8 100644 (file)
@@ -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))