On Fri, Jul 24, 2026 at 3:31 PM Rik van Riel <[email protected]> wrote:
>
> get_user_page_vma_remote() faults in the page at @addr in a remote mm and
> also looks up the VMA that covers it, handing both back to the caller.
>
> This cleans up the namespace for adding a get_user_page_vma() variant where
> the caller already has the vma.

nit: Before explaining the results we usually state what this patch is
doing. I know the title alread says "rename get_user_page_vma_remote()
to get_user_page_lookup_vma()" but it seems appropriate to say that
here too.

>
> No functional change intended.
>
> Assisted-by: Claude:claude-opus-4.8
> Acked-by: Usama Arif <[email protected]>
> Signed-off-by: Rik van Riel <[email protected]>

Reviewed-by: Suren Baghdasaryan <[email protected]>

> ---
>  arch/arm64/kernel/mte.c   | 2 +-
>  arch/x86/kernel/uprobes.c | 2 +-
>  include/linux/mm.h        | 2 +-
>  mm/memory.c               | 4 ++--
>  mm/rmap.c                 | 2 +-
>  5 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm64/kernel/mte.c b/arch/arm64/kernel/mte.c
> index 1a9aad6ef22a..7a6ecc3d9294 100644
> --- a/arch/arm64/kernel/mte.c
> +++ b/arch/arm64/kernel/mte.c
> @@ -459,7 +459,7 @@ static int __access_remote_tags(struct mm_struct *mm, 
> unsigned long addr,
>                 struct vm_area_struct *vma;
>                 unsigned long tags, offset;
>                 void *maddr;
> -               struct page *page = get_user_page_vma_remote(mm, addr,
> +               struct page *page = get_user_page_lookup_vma(mm, addr,
>                                                              gup_flags, &vma);
>                 struct folio *folio;
>
> diff --git a/arch/x86/kernel/uprobes.c b/arch/x86/kernel/uprobes.c
> index 3af979fb41d3..329efac0cfb3 100644
> --- a/arch/x86/kernel/uprobes.c
> +++ b/arch/x86/kernel/uprobes.c
> @@ -1036,7 +1036,7 @@ static int copy_from_vaddr(struct mm_struct *mm, 
> unsigned long vaddr, void *dst,
>         struct vm_area_struct *vma;
>         struct page *page;
>
> -       page = get_user_page_vma_remote(mm, vaddr, gup_flags, &vma);
> +       page = get_user_page_lookup_vma(mm, vaddr, gup_flags, &vma);
>         if (IS_ERR(page))
>                 return PTR_ERR(page);
>         uprobe_copy_from_page(page, vaddr, dst, len);
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 485df9c2dbdd..24ead14b4790 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -3238,7 +3238,7 @@ long pin_user_pages_remote(struct mm_struct *mm,
>  /*
>   * Retrieves a single page alongside its VMA. Does not support FOLL_NOWAIT.
>   */
> -static inline struct page *get_user_page_vma_remote(struct mm_struct *mm,
> +static inline struct page *get_user_page_lookup_vma(struct mm_struct *mm,
>                                                     unsigned long addr,
>                                                     int gup_flags,
>                                                     struct vm_area_struct 
> **vmap)
> diff --git a/mm/memory.c b/mm/memory.c
> index ff338c2abe92..3b86eeaf084f 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -7039,7 +7039,7 @@ static int __access_remote_vm(struct mm_struct *mm, 
> unsigned long addr,
>                 void *maddr;
>                 struct folio *folio;
>                 struct vm_area_struct *vma = NULL;
> -               struct page *page = get_user_page_vma_remote(mm, addr,
> +               struct page *page = get_user_page_lookup_vma(mm, addr,
>                                                              gup_flags, &vma);
>
>                 if (IS_ERR(page)) {
> @@ -7167,7 +7167,7 @@ static int __copy_remote_vm_str(struct mm_struct *mm, 
> unsigned long addr,
>                 struct page *page;
>                 struct vm_area_struct *vma = NULL;
>
> -               page = get_user_page_vma_remote(mm, addr, gup_flags, &vma);
> +               page = get_user_page_lookup_vma(mm, addr, gup_flags, &vma);
>                 if (IS_ERR(page)) {
>                         /*
>                          * Treat as a total failure for now until we decide 
> how
> diff --git a/mm/rmap.c b/mm/rmap.c
> index 1c77d5dc06e9..b36f2e219b8f 100644
> --- a/mm/rmap.c
> +++ b/mm/rmap.c
> @@ -2838,7 +2838,7 @@ struct page *make_device_exclusive(struct mm_struct 
> *mm, unsigned long addr,
>          * (non-device-exclusive) PTE and issue a MMU_NOTIFY_EXCLUSIVE.
>          */
>  retry:
> -       page = get_user_page_vma_remote(mm, addr,
> +       page = get_user_page_lookup_vma(mm, addr,
>                                         FOLL_GET | FOLL_WRITE | 
> FOLL_SPLIT_PMD,
>                                         &vma);
>         if (IS_ERR(page))
> --
> 2.53.0-Meta
>

Reply via email to