[PATCH 0/3] use vm_flags_t consistently

Mike Rapoport rppt at kernel.org
Thu Jun 19 15:47:46 AEST 2025


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 at 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.


More information about the Linuxppc-dev mailing list