VM_UFFD_WP
[ilog2(VM_UFFD_WP)] = "uw",
vm_flags |= VM_UFFD_WP;
if ((vm_flags & VM_UFFD_WP) && !(cur->vm_flags & VM_MAYWRITE))
if (reason & VM_UFFD_WP)
if (!huge_pte_write(pte) && (reason & VM_UFFD_WP))
return !pmd_write(_pmd) && (reason & VM_UFFD_WP);
if (!pte_write(ptent) && (reason & VM_UFFD_WP))
#define VM_COPY_ON_FORK (VM_PFNMAP | VM_MIXEDMAP | VM_UFFD_WP | VM_MAYBE_GUARD)
return vma->vm_flags & (VM_UFFD_WP | VM_UFFD_MINOR);
return vma->vm_flags & (VM_UFFD_WP | VM_UFFD_MINOR);
return vma->vm_flags & VM_UFFD_WP;
if (wp_async && (vm_flags == VM_UFFD_WP))
if (!uffd_supports_wp_marker() && (vm_flags & VM_UFFD_WP) &&
#define __VM_UFFD_FLAGS (VM_UFFD_MISSING | VM_UFFD_WP | VM_UFFD_MINOR)
{VM_UFFD_WP, "uffd_wp" }, \
return handle_userfault(&vmf, VM_UFFD_WP);
return handle_userfault(vmf, VM_UFFD_WP);
return handle_userfault(vmf, VM_UFFD_WP);
const bool uffd_wp_changed = (vma->vm_flags ^ vm_flags) & VM_UFFD_WP;
if ((flags & MFILL_ATOMIC_WP) && !(dst_vma->vm_flags & VM_UFFD_WP))
#define VM_COPY_ON_FORK (VM_PFNMAP | VM_MIXEDMAP | VM_UFFD_WP | VM_MAYBE_GUARD)