Re: [PATCH 10/13] mm/vma: convert miscellaneous uses of VMA flags in core mm
Lance Yang <[email protected]> Thu, 2 Jul 2026 21:12:33 +0800
| Newsgroups | org.kernel.vger.linux-fbdev,dev.linux.lists.virtualization,org.freedesktop.lists.dri-devel,org.freedesktop.lists.intel-gfx,org.freedesktop.lists.intel-xe,org.freedesktop.lists.nouveau,org.infradead.lists.linux-rockchip,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-mips,org.kernel.vger.linux-samsung-soc,org.kernel.vger.linux-sound,org.kernel.vger.linux-tegra,org.ozlabs.lists.linuxppc-dev,org.xenproject.lists.xen-devel |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Jun 29, 2026 at 08:25:33PM +0100, Lorenzo Stoakes wrote: >Update various uses of legacy flags in vma.c and mmap.c to the new >vma_flags_t type, updating comments alongside them to be consistent. > >Also update __install_special_mapping() to rearrange things slightly to >accommodate the changes. > >Signed-off-by: Lorenzo Stoakes <[email protected]> >--- [...] >diff --git a/mm/vma.c b/mm/vma.c >index b81c05e67a61..ab2ef0f04420 100644 >--- a/mm/vma.c >+++ b/mm/vma.c >@@ -3417,23 +3417,27 @@ struct vm_area_struct *__install_special_mapping( > vm_flags_t vm_flags, void *priv, > const struct vm_operations_struct *ops) > { >- int ret; >+ vma_flags_t vma_flags = legacy_to_vma_flags(vm_flags); > struct vm_area_struct *vma; >+ int ret; > > vma = vm_area_alloc(mm); >- if (unlikely(vma == NULL)) >+ if (unlikely(!vma)) > return ERR_PTR(-ENOMEM); > >- vma_set_range(vma, addr, addr + len, 0); >- vm_flags |= vma_flags_to_legacy(mm->def_vma_flags) | VM_DONTEXPAND; >+ vma_flags_set_mask(&vma_flags, mm->def_vma_flags); >+ vma_flags_set(&vma_flags, VMA_DONTEXPAND_BIT); > if (pgtable_supports_soft_dirty()) >- vm_flags |= VM_SOFTDIRTY; >- vm_flags_init(vma, vm_flags & ~VM_LOCKED_MASK); >+ vma_flags_set(&vma_flags, VMA_SOFTDIRTY_BIT); >+ vma_flags_clear_mask(&vma_flags, VMA_LOCKED_MASK); >+ vma->flags = vma_flags; Maybe worth a vma_flags_init() helper here to mirror vm_flags_init()? With this open-coded, we lose the soft-dirty WARN_ON_ONCE sanity check. Might be nicer to keep that check in one place ;) [...]