On Wed, Jul 15, 2026 at 02:05:42PM -0400, Liam R. Howlett wrote: > On 26/07/10 09:16PM, Lorenzo Stoakes wrote: > > vma_last_pgoff() already lives there, so it's a bit odd to keep > > vma_start_pgoff() in mm/interval_tree.c. Move them together. > > > > These each return unsigned long, which pgoff_t is typedef'd to. Make this > > consistent and have these functions return pgoff_t instead. > > > > Additionally, express vma_last_pgoff() in terms of vma_start_pgoff(), since > > we wrap the vma->vm_pgoff access, we may as well use it here. > > > > Also while we're here, const-ify the VMA and cleanup a bit. > > > > Also update the VMA userland tests to reflect the change. > > This patch could have been 01/35? Disappointing, but I will try to get > over it.
;) well I have a series I've not sent yet that maybe could grow a bit to achieve these aims? :>) > > > > > No functional change intended. > > > > Reviewed-by: Gregory Price <[email protected]> > > Acked-by: David Hildenbrand (Arm) <[email protected]> > > Reviewed-by: Pedro Falcato <[email protected]> > > Reviewed-by: Vlastimil Babka (SUSE) <[email protected]> > > Signed-off-by: Lorenzo Stoakes <[email protected]> > > Reviewed-by: Liam R. Howlett (Oracle) <[email protected]> Thanks! > > > --- > > include/linux/mm.h | 9 +++++++-- > > mm/interval_tree.c | 5 ----- > > tools/testing/vma/include/dup.h | 5 +++++ > > 3 files changed, 12 insertions(+), 7 deletions(-) > > > > diff --git a/include/linux/mm.h b/include/linux/mm.h > > index 25e669632d2c..09b06d8fea74 100644 > > --- a/include/linux/mm.h > > +++ b/include/linux/mm.h > > @@ -4307,9 +4307,14 @@ static inline unsigned long vma_pages(const struct > > vm_area_struct *vma) > > return (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; > > } > > > > -static inline unsigned long vma_last_pgoff(struct vm_area_struct *vma) > > +static inline pgoff_t vma_start_pgoff(const struct vm_area_struct *vma) > > { > > - return vma->vm_pgoff + vma_pages(vma) - 1; > > + return vma->vm_pgoff; > > +} > > + > > +static inline pgoff_t vma_last_pgoff(const struct vm_area_struct *vma) > > +{ > > + return vma_start_pgoff(vma) + vma_pages(vma) - 1; > > } > > > > static inline unsigned long vma_desc_size(const struct vm_area_desc *desc) > > diff --git a/mm/interval_tree.c b/mm/interval_tree.c > > index 32bcfbfcf15f..344d1f5946c7 100644 > > --- a/mm/interval_tree.c > > +++ b/mm/interval_tree.c > > @@ -10,11 +10,6 @@ > > #include <linux/rmap.h> > > #include <linux/interval_tree_generic.h> > > > > -static inline unsigned long vma_start_pgoff(struct vm_area_struct *v) > > -{ > > - return v->vm_pgoff; > > -} > > - > > INTERVAL_TREE_DEFINE(struct vm_area_struct, shared.rb, > > unsigned long, shared.rb_subtree_last, > > vma_start_pgoff, vma_last_pgoff, /* empty */, > > vma_interval_tree) > > diff --git a/tools/testing/vma/include/dup.h > > b/tools/testing/vma/include/dup.h > > index bf26b3f48d3a..668650067c7c 100644 > > --- a/tools/testing/vma/include/dup.h > > +++ b/tools/testing/vma/include/dup.h > > @@ -1301,6 +1301,11 @@ static inline unsigned long vma_pages(const struct > > vm_area_struct *vma) > > return (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; > > } > > > > +static inline pgoff_t vma_start_pgoff(const struct vm_area_struct *vma) > > +{ > > + return vma->vm_pgoff; > > +} > > + > > static inline int vfs_mmap_prepare(struct file *file, struct vm_area_desc > > *desc) > > { > > return file->f_op->mmap_prepare(desc); > > > > -- > > 2.55.0 > > Cheers, Lorenzo
