Re: [PATCH 0/3] use vm_flags_t consistently

Mike Rapoport
2025-06-19T05:48:08Z

On Wed, Jun 18, 2025 at 08:42:51PM +0100, Lorenzo Stoakes wrote:
> The VMA flags field vma->vm_flags is of type vm_flags_t. Right now this is
> exactly equivalent to unsigned long, but it should not be assumed to be.
>
> Much code that references vma->vm_flags already correctly uses vm_flags_t,
> but a fairly large chunk of code simply uses unsigned long and assumes that
> the two are equivalent.
>
> This series corrects that and has us use vm_flags_t consistently.
>
> This series is motivated by the desire to, in a future series, adjust
> vm_flags_t to be a u64 regardless of whether the kernel is 32-bit or 64-bit
> in order to deal with the VMA flag exhaustion issue and avoid all the
> various problems that arise from it (being unable to use certain features
> in 32-bit, being unable to add new flags except for 64-bit, etc.)
>
> This is therefore a critical first step towards that goal. At any rate,
> using the correct type is of value regardless.
>
> We additionally take the opportunity to refer to VMA flags as vm_flags
> where possible to make clear what we're referring to.
>
> Overall, this series does not introduce any functional change.
>
> Lorenzo Stoakes (3):
> mm: change vm_get_page_prot() to accept vm_flags_t argument
> mm: update core kernel code to use vm_flags_t consistently
> mm: update architecture and driver code to use vm_flags_t

For the series

Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>

> arch/arm/mm/fault.c | 2 +-
> arch/arm64/include/asm/mman.h | 10 +-
> arch/arm64/mm/fault.c | 2 +-
> arch/arm64/mm/mmap.c | 2 +-
> arch/arm64/mm/mmu.c | 2 +-
> arch/powerpc/include/asm/book3s/64/pkeys.h | 3 +-
> arch/powerpc/include/asm/mman.h | 2 +-
> arch/powerpc/include/asm/pkeys.h | 4 +-
> arch/powerpc/kvm/book3s_hv_uvmem.c | 2 +-
> arch/sparc/include/asm/mman.h | 4 +-
> arch/sparc/mm/init_64.c | 2 +-
> arch/x86/kernel/cpu/sgx/encl.c | 8 +-
> arch/x86/kernel/cpu/sgx/encl.h | 2 +-
> arch/x86/mm/pgprot.c | 2 +-
> fs/exec.c | 2 +-
> fs/userfaultfd.c | 2 +-
> include/linux/coredump.h | 2 +-
> include/linux/huge_mm.h | 12 +-
> include/linux/khugepaged.h | 4 +-
> include/linux/ksm.h | 4 +-
> include/linux/memfd.h | 4 +-
> include/linux/mm.h | 10 +-
> include/linux/mm_types.h | 2 +-
> include/linux/mman.h | 4 +-
> include/linux/pgtable.h | 2 +-
> include/linux/rmap.h | 4 +-
> include/linux/userfaultfd_k.h | 4 +-
> include/trace/events/fs_dax.h | 6 +-
> mm/debug.c | 2 +-
> mm/execmem.c | 8 +-
> mm/filemap.c | 2 +-
> mm/gup.c | 2 +-
> mm/huge_memory.c | 2 +-
> mm/hugetlb.c | 4 +-
> mm/internal.h | 4 +-
> mm/khugepaged.c | 4 +-
> mm/ksm.c | 2 +-
> mm/madvise.c | 4 +-
> mm/mapping_dirty_helpers.c | 2 +-
> mm/memfd.c | 8 +-
> mm/memory.c | 4 +-
> mm/mmap.c | 16 +-
> mm/mprotect.c | 8 +-
> mm/mremap.c | 2 +-
> mm/nommu.c | 12 +-
> mm/rmap.c | 4 +-
> mm/shmem.c | 6 +-
> mm/userfaultfd.c | 14 +-
> mm/vma.c | 78 +++---
> mm/vma.h | 16 +-
> mm/vmscan.c | 4 +-
> tools/testing/vma/vma.c | 266 ++++++++++-----------
> tools/testing/vma/vma_internal.h | 12 +-
> 53 files changed, 298 insertions(+), 297 deletions(-)
>
> --
> 2.49.0

--
Sincerely yours,
Mike.