Currently userfault related VMA flags have multiple meanings:
* identify VMAs that are registered with userfaultfd
* and also how exactly VMA is registered with uffd
* and also communicate kind of user fault between the page fault handler
and handle_userfault()
Introduce an enum for user fault reasons and move the registration mode
into per VMA vm_uffd_state structure today known as vm_userfaultfd_ctx.
---
Mike Rapoport (Microsoft) (6):
mm/gup: move gup_can_follow_protnone() to gup.c
userfaultfd: constify VMA parameter of userfaultfd_*() helpers
userfaultfd: use userfaultfd_*() helpers instead of open coded flag tests
userfaultfd: rename vm_userfaultfd_ctx to vm_uffd_state
userfaultfd: decouple fault reason from VMA flags
userfaultfd: collapse VM_UFFD_{MISSING,WP,MINOR,RWP} into single VM_UFFD
Documentation/mm/process_addrs.rst | 4 +-
fs/proc/task_mmu.c | 18 +--
include/linux/mm.h | 105 +++--------------
include/linux/mm_types.h | 11 +-
include/linux/pgtable.h | 4 +-
include/linux/userfaultfd_k.h | 155 ++++++++++++++-----------
include/trace/events/mmflags.h | 17 +--
include/uapi/linux/userfaultfd.h | 6 +-
mm/gup.c | 39 +++++++
mm/huge_memory.c | 6 +-
mm/hugetlb.c | 12 +-
mm/khugepaged.c | 2 +-
mm/memory.c | 16 +--
mm/mprotect.c | 2 +-
mm/mremap.c | 4 +-
mm/shmem.c | 6 +-
mm/userfaultfd.c | 225 +++++++++++++++++++------------------
mm/vma.c | 4 +-
mm/vma.h | 6 +-
mm/vma_init.c | 4 +-
tools/testing/vma/include/dup.h | 20 ++--
tools/testing/vma/include/stubs.h | 6 +-
22 files changed, 323 insertions(+), 349 deletions(-)
---
base-commit: 4b2ae13f3393ef4b4bce0021e8762790354f369f
change-id: 20260823-uffd-vm-flags-v1-ee3e131b381d
--
Sincerely yours,
Mike.