On Fri, May 29, 2026 at 06:26:33PM +0100, Kiryl Shutsemau (Meta) wrote: > The uffd VMA-flag helpers read vma->vm_flags directly. Now that > config-gated per-mode masks exist, switch them to the vma_flags_t > accessor vma_test_any_mask(), which is the going-forward API and keeps a > single place (the VMA_UFFD_* masks) that knows which modes are available > on the current build. > > No functional change: vma_flags_t is in union with vm_flags, so the same > bits are read, and the masks fold to the same code the open-coded > vm_flags tests produced -- verified identical on gcc and clang, 32- and > 64-bit. > > Suggested-by: Lorenzo Stoakes <[email protected]> > Signed-off-by: Kiryl Shutsemau <[email protected]> > Assisted-by: Claude:claude-opus-4-8
Acked-by: Mike Rapoport (Microsoft) <[email protected]> > --- > include/linux/userfaultfd_k.h | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/include/linux/userfaultfd_k.h b/include/linux/userfaultfd_k.h > index 658740df2978..c4f2cc6dfcf0 100644 > --- a/include/linux/userfaultfd_k.h > +++ b/include/linux/userfaultfd_k.h > @@ -178,7 +178,8 @@ static inline bool is_mergeable_vm_userfaultfd_ctx(struct > vm_area_struct *vma, > */ > static inline bool uffd_disable_huge_pmd_share(struct vm_area_struct *vma) > { > - return vma->vm_flags & (VM_UFFD_WP | VM_UFFD_MINOR); > + return vma_test_any_mask(vma, > + mk_vma_flags_from_masks(VMA_UFFD_WP, VMA_UFFD_MINOR)); > } > > /* > @@ -190,22 +191,23 @@ static inline bool uffd_disable_huge_pmd_share(struct > vm_area_struct *vma) > */ > static inline bool uffd_disable_fault_around(struct vm_area_struct *vma) > { > - return vma->vm_flags & (VM_UFFD_WP | VM_UFFD_MINOR); > + return vma_test_any_mask(vma, > + mk_vma_flags_from_masks(VMA_UFFD_WP, VMA_UFFD_MINOR)); > } > > static inline bool userfaultfd_missing(struct vm_area_struct *vma) > { > - return vma->vm_flags & VM_UFFD_MISSING; > + return vma_test_any_mask(vma, VMA_UFFD_MISSING); > } > > static inline bool userfaultfd_wp(struct vm_area_struct *vma) > { > - return vma->vm_flags & VM_UFFD_WP; > + return vma_test_any_mask(vma, VMA_UFFD_WP); > } > > static inline bool userfaultfd_minor(struct vm_area_struct *vma) > { > - return vma->vm_flags & VM_UFFD_MINOR; > + return vma_test_any_mask(vma, VMA_UFFD_MINOR); > } > > static inline bool userfaultfd_pte_wp(struct vm_area_struct *vma, > @@ -222,7 +224,7 @@ static inline bool userfaultfd_huge_pmd_wp(struct > vm_area_struct *vma, > > static inline bool userfaultfd_armed(struct vm_area_struct *vma) > { > - return vma->vm_flags & __VM_UFFD_FLAGS; > + return vma_test_any_mask(vma, __VMA_UFFD_FLAGS); > } > > static inline bool vma_has_uffd_without_event_remap(struct vm_area_struct > *vma) > -- > 2.54.0 > -- Sincerely yours, Mike.

