The patch titled Subject: mm-support-gup-triggered-unsharing-of-anonymous-pages-fix has been added to the -mm tree. Its filename is mm-support-gup-triggered-unsharing-of-anonymous-pages-fix.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/mm-support-gup-triggered-unsharing-of-anonymous-pages-fix.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/mm-support-gup-triggered-unsharing-of-anonymous-pages-fix.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: David Hildenbrand <david@xxxxxxxxxx> Subject: mm-support-gup-triggered-unsharing-of-anonymous-pages-fix Link: https://lkml.kernel.org/r/c003964a-9fa1-b17c-158a-8ccbf4ff8656@xxxxxxxxxx Cc: Vlastimil Babka <vbabka@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/memory.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/mm/memory.c~mm-support-gup-triggered-unsharing-of-anonymous-pages-fix +++ a/mm/memory.c @@ -3132,7 +3132,7 @@ static vm_fault_t wp_page_copy(struct vm free_swap_cache(old_page); put_page(old_page); } - return page_copied && !unshare ? VM_FAULT_WRITE : 0; + return (page_copied && !unshare) ? VM_FAULT_WRITE : 0; oom_free_new: put_page(new_page); oom: @@ -4557,7 +4557,7 @@ static inline vm_fault_t wp_huge_pmd(str const bool unshare = vmf->flags & FAULT_FLAG_UNSHARE; if (vma_is_anonymous(vmf->vma)) { - if (unlikely(unshare) && + if (likely(!unshare) && userfaultfd_huge_pmd_wp(vmf->vma, vmf->orig_pmd)) return handle_userfault(vmf, VM_UFFD_WP); return do_huge_pmd_wp_page(vmf); _ Patches currently in -mm which might be from david@xxxxxxxxxx are mm-rmap-fix-missing-swap_free-in-try_to_unmap-after-arch_unmap_one-failed.patch mm-hugetlb-take-src_mm-write_protect_seq-in-copy_hugetlb_page_range.patch mm-memory-slightly-simplify-copy_present_pte.patch mm-rmap-split-page_dup_rmap-into-page_dup_file_rmap-and-page_try_dup_anon_rmap.patch mm-rmap-convert-rmap-flags-to-a-proper-distinct-rmap_t-type.patch mm-rmap-remove-do_page_add_anon_rmap.patch mm-rmap-pass-rmap-flags-to-hugepage_add_anon_rmap.patch mm-rmap-drop-compound-parameter-from-page_add_new_anon_rmap.patch mm-rmap-use-page_move_anon_rmap-when-reusing-a-mapped-pageanon-page-exclusively.patch mm-huge_memory-remove-outdated-vm_warn_on_once_page-from-unmap_page.patch mm-page-flags-reuse-pg_mappedtodisk-as-pg_anon_exclusive-for-pageanon-pages.patch mm-remember-exclusively-mapped-anonymous-pages-with-pg_anon_exclusive.patch mm-gup-disallow-follow_pagefoll_pin.patch mm-support-gup-triggered-unsharing-of-anonymous-pages.patch mm-support-gup-triggered-unsharing-of-anonymous-pages-fix.patch mm-gup-trigger-fault_flag_unshare-when-r-o-pinning-a-possibly-shared-anonymous-page.patch mm-gup-sanity-check-with-config_debug_vm-that-anonymous-pages-are-exclusive-when-unpinning.patch mm-swap-remember-pg_anon_exclusive-via-a-swp-pte-bit.patch mm-swap-remember-pg_anon_exclusive-via-a-swp-pte-bit-fix.patch mm-debug_vm_pgtable-add-tests-for-__have_arch_pte_swp_exclusive.patch x86-pgtable-support-__have_arch_pte_swp_exclusive.patch arm64-pgtable-support-__have_arch_pte_swp_exclusive.patch s390-pgtable-cleanup-description-of-swp-pte-layout.patch s390-pgtable-support-__have_arch_pte_swp_exclusive.patch powerpc-pgtable-remove-_page_bit_swap_type-for-book3s.patch powerpc-pgtable-support-__have_arch_pte_swp_exclusive-for-book3s.patch