[1/4] mm: make __access_remote_vm() static
Commit Message
access_remote_vm() passes through parameters to __access_remote_vm()
directly, so remove the __access_remote_vm() function from mm.h aand use
access_remote_vm() in the one caller that needs it (ptrace_access_vm()).
This allows future adjustments to the GUP-internal __access_remote_vm()
function while keeping the access_remote_vm() function stable.
Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com>
---
include/linux/mm.h | 2 --
kernel/ptrace.c | 2 +-
mm/memory.c | 4 ++--
mm/nommu.c | 4 ++--
4 files changed, 5 insertions(+), 7 deletions(-)
Comments
On 01.10.23 18:00, Lorenzo Stoakes wrote:
> access_remote_vm() passes through parameters to __access_remote_vm()
> directly, so remove the __access_remote_vm() function from mm.h aand use
> access_remote_vm() in the one caller that needs it (ptrace_access_vm()).
>
Wondering why we even still have __access_remote_vm() in the first
place, if it really should just be access_remote_vm() directly.
Reviewed-by: David Hildenbrand <david@redhat.com>
On Sun, Oct 01, 2023 at 05:00:02PM +0100, Lorenzo Stoakes wrote:
> access_remote_vm() passes through parameters to __access_remote_vm()
> directly, so remove the __access_remote_vm() function from mm.h aand use
> access_remote_vm() in the one caller that needs it (ptrace_access_vm()).
>
> This allows future adjustments to the GUP-internal __access_remote_vm()
> function while keeping the access_remote_vm() function stable.
>
> Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com>
> ---
> include/linux/mm.h | 2 --
> kernel/ptrace.c | 2 +-
> mm/memory.c | 4 ++--
> mm/nommu.c | 4 ++--
> 4 files changed, 5 insertions(+), 7 deletions(-)
Why do we even have two versions?
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Jason
@@ -2415,8 +2415,6 @@ extern int access_process_vm(struct task_struct *tsk, unsigned long addr,
void *buf, int len, unsigned int gup_flags);
extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
void *buf, int len, unsigned int gup_flags);
-extern int __access_remote_vm(struct mm_struct *mm, unsigned long addr,
- void *buf, int len, unsigned int gup_flags);
long get_user_pages_remote(struct mm_struct *mm,
unsigned long start, unsigned long nr_pages,
@@ -59,7 +59,7 @@ int ptrace_access_vm(struct task_struct *tsk, unsigned long addr,
return 0;
}
- ret = __access_remote_vm(mm, addr, buf, len, gup_flags);
+ ret = access_remote_vm(mm, addr, buf, len, gup_flags);
mmput(mm);
return ret;
@@ -5881,8 +5881,8 @@ EXPORT_SYMBOL_GPL(generic_access_phys);
/*
* Access another process' address space as given in mm.
*/
-int __access_remote_vm(struct mm_struct *mm, unsigned long addr, void *buf,
- int len, unsigned int gup_flags)
+static int __access_remote_vm(struct mm_struct *mm, unsigned long addr,
+ void *buf, int len, unsigned int gup_flags)
{
void *old_buf = buf;
int write = gup_flags & FOLL_WRITE;
@@ -1651,8 +1651,8 @@ vm_fault_t filemap_map_pages(struct vm_fault *vmf,
}
EXPORT_SYMBOL(filemap_map_pages);
-int __access_remote_vm(struct mm_struct *mm, unsigned long addr, void *buf,
- int len, unsigned int gup_flags)
+static int __access_remote_vm(struct mm_struct *mm, unsigned long addr,
+ void *buf, int len, unsigned int gup_flags)
{
struct vm_area_struct *vma;
int write = gup_flags & FOLL_WRITE;