On Wed, Jul 15, 2026 at 07:45:59PM +0200, Vlastimil Babka (SUSE) wrote: > On 7/10/26 22:17, Lorenzo Stoakes wrote: > > With __install_special_mapping() moved to vma.c, vma_set_range() can be > > made into a static function there and is now completely isolated from the > > rest of mm. > > Pedantic nit: it was already "static", but in a .h file > Yeah it was also "inline" but that's not the important part of this change. > > So I'd say it was rather moved to vma.c, but you can ignore this nit if you > want.
That is pretty pedantic ;) I mean to say bare 'static' here obvs. I can fix if any respin but I think ok as-is for now. > > > While we're here, we can also remove the insert_vm_struct() declaration > > from mm.h - the function is implemented in vma.c and already declared in > > vma.h, and has no users outside of mm. > > > > Also update the VMA userland tests to reflect this change. > > > > No functional change intended. > > > > Reviewed-by: Pedro Falcato <[email protected]> > > Reviewed-by: Gregory Price <[email protected]> > > Signed-off-by: Lorenzo Stoakes <[email protected]> > > Reviewed-by: Vlastimil Babka (SUSE) <[email protected]> Thanks! :) > > > --- > > include/linux/mm.h | 1 - > > mm/internal.h | 9 --------- > > mm/vma.c | 8 ++++++++ > > tools/testing/vma/shared.c | 9 --------- > > tools/testing/vma/shared.h | 5 ----- > > 5 files changed, 8 insertions(+), 24 deletions(-) > > > > diff --git a/include/linux/mm.h b/include/linux/mm.h > > index 3d69b597b9b1..762313b47301 100644 > > --- a/include/linux/mm.h > > +++ b/include/linux/mm.h > > @@ -4130,7 +4130,6 @@ void anon_rmap_tree_verify(struct anon_vma_chain > > *avc); > > > > /* mmap.c */ > > extern int __vm_enough_memory(const struct mm_struct *mm, long pages, int > > cap_sys_admin); > > -extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *); > > extern void exit_mmap(struct mm_struct *); > > bool mmap_read_lock_maybe_expand(struct mm_struct *mm, struct > > vm_area_struct *vma, > > unsigned long addr, bool write); > > diff --git a/mm/internal.h b/mm/internal.h > > index 01a762bcc2b2..2c650d280e90 100644 > > --- a/mm/internal.h > > +++ b/mm/internal.h > > @@ -1540,15 +1540,6 @@ extern bool mirrored_kernelcore; > > bool memblock_has_mirror(void); > > void memblock_free_all(void); > > > > -static __always_inline void vma_set_range(struct vm_area_struct *vma, > > - unsigned long start, unsigned long > > end, > > - pgoff_t pgoff) > > -{ > > - vma->vm_start = start; > > - vma->vm_end = end; > > - vma->vm_pgoff = pgoff; > > -} > > - > > static inline bool vma_soft_dirty_enabled(struct vm_area_struct *vma) > > { > > /* > > diff --git a/mm/vma.c b/mm/vma.c > > index 5308aa5a8c91..cc0e449ad0be 100644 > > --- a/mm/vma.c > > +++ b/mm/vma.c > > @@ -70,6 +70,14 @@ struct mmap_state { > > .state = VMA_MERGE_START, \ > > } > > > > +static void vma_set_range(struct vm_area_struct *vma, unsigned long start, > > + unsigned long end, pgoff_t pgoff) > > +{ > > + vma->vm_start = start; > > + vma->vm_end = end; > > + vma->vm_pgoff = pgoff; > > +} > > + > > /* Was this VMA ever forked from a parent, i.e. maybe contains CoW > > mappings? */ > > static bool vma_is_fork_child(struct vm_area_struct *vma) > > { > > diff --git a/tools/testing/vma/shared.c b/tools/testing/vma/shared.c > > index 2565a5aecb80..bea9ea6db02a 100644 > > --- a/tools/testing/vma/shared.c > > +++ b/tools/testing/vma/shared.c > > @@ -120,12 +120,3 @@ unsigned long rlimit(unsigned int limit) > > { > > return (unsigned long)-1; > > } > > - > > -void vma_set_range(struct vm_area_struct *vma, > > - unsigned long start, unsigned long end, > > - pgoff_t pgoff) > > -{ > > - vma->vm_start = start; > > - vma->vm_end = end; > > - vma->vm_pgoff = pgoff; > > -} > > diff --git a/tools/testing/vma/shared.h b/tools/testing/vma/shared.h > > index 8b9e3b11c3cb..ca4f1238f1c7 100644 > > --- a/tools/testing/vma/shared.h > > +++ b/tools/testing/vma/shared.h > > @@ -125,8 +125,3 @@ void __vma_set_dummy_anon_vma(struct vm_area_struct > > *vma, > > /* Provide a simple dummy VMA/anon_vma dummy setup for testing. */ > > void vma_set_dummy_anon_vma(struct vm_area_struct *vma, > > struct anon_vma_chain *avc); > > - > > -/* Helper function to specify a VMA's range. */ > > -void vma_set_range(struct vm_area_struct *vma, > > - unsigned long start, unsigned long end, > > - pgoff_t pgoff); > > > Cheers, Lorenzo
