Re: [PATCH 18/30] mm/vma: remove duplicative vma_pgoff_offset() helper
From: Pedro Falcato
Date: Thu Jul 02 2026 - 07:27:27 EST
On Mon, Jun 29, 2026 at 01:23:29PM +0100, Lorenzo Stoakes wrote:
> This is doing what linear_page_index() does, so eliminate it and replace it
> with linear_page_index().
>
> Update the VMA userland tests to reflect this change.
>
> No functional change intended.
>
> Signed-off-by: Lorenzo Stoakes <ljs@xxxxxxxxxx>
Reviewed-by: Pedro Falcato <pfalcato@xxxxxxx>
> ---
> mm/vma.h | 9 +--------
> tools/testing/vma/include/dup.h | 16 ++++++++++++++++
> 2 files changed, 17 insertions(+), 8 deletions(-)
>
> diff --git a/mm/vma.h b/mm/vma.h
> index 527716c8739d..2342516ce00e 100644
> --- a/mm/vma.h
> +++ b/mm/vma.h
> @@ -247,13 +247,6 @@ static inline pgoff_t vmg_end_pgoff(const struct vma_merge_struct *vmg)
> return vmg_start_pgoff(vmg) + vmg_pages(vmg);
> }
>
> -/* Assumes addr >= vma->vm_start. */
> -static inline pgoff_t vma_pgoff_offset(struct vm_area_struct *vma,
> - unsigned long addr)
> -{
> - return vma->vm_pgoff + PHYS_PFN(addr - vma->vm_start);
> -}
> -
> #define VMG_STATE(name, mm_, vmi_, start_, end_, vma_flags_, pgoff_) \
> struct vma_merge_struct name = { \
> .mm = mm_, \
> @@ -275,7 +268,7 @@ static inline pgoff_t vma_pgoff_offset(struct vm_area_struct *vma,
> .start = start_, \
> .end = end_, \
> .vm_flags = vma_->vm_flags, \
> - .pgoff = vma_pgoff_offset(vma_, start_), \
> + .pgoff = linear_page_index(vma_, start_), \
> .file = vma_->vm_file, \
> .anon_vma = vma_->anon_vma, \
> .policy = vma_policy(vma_), \
> diff --git a/tools/testing/vma/include/dup.h b/tools/testing/vma/include/dup.h
> index 535747d7fee4..7ed165c8d9bc 100644
> --- a/tools/testing/vma/include/dup.h
> +++ b/tools/testing/vma/include/dup.h
> @@ -1548,3 +1548,19 @@ static inline pgprot_t vma_get_page_prot(vma_flags_t vma_flags)
>
> return vm_get_page_prot(vm_flags);
> }
> +
> +static inline pgoff_t linear_page_delta(const struct vm_area_struct *vma,
> + const unsigned long address)
> +{
> + return (address - vma->vm_start) >> PAGE_SHIFT;
> +}
> +
> +static inline pgoff_t linear_page_index(const struct vm_area_struct *vma,
> + const unsigned long address)
> +{
> + pgoff_t pgoff;
> +
> + pgoff = linear_page_delta(vma, address);
> + pgoff += vma_start_pgoff(vma);
> + return pgoff;
> +}
> --
> 2.54.0
>
--
Pedro