Message ID | 20210510165839.2692974-21-Liam.Howlett@Oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mm: Add vma_lookup() | expand |
On Mon, 10 May 2021, Liam Howlett wrote: >Use vma_lookup() to find the VMA at a specific address. As vma_lookup() >will return NULL if the address is not within any VMA, the start address >no longer needs to be validated. > >Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com> >--- > mm/mremap.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > >diff --git a/mm/mremap.c b/mm/mremap.c >index 47c255b60150..04143755cd1e 100644 >--- a/mm/mremap.c >+++ b/mm/mremap.c >@@ -634,10 +634,10 @@ static struct vm_area_struct *vma_to_resize(unsigned long addr, > unsigned long *p) > { > struct mm_struct *mm = current->mm; >- struct vm_area_struct *vma = find_vma(mm, addr); >+ struct vm_area_struct *vma = vma_lookup(mm, addr); > unsigned long pgoff; > Nit, but could the vma_lookup() call be separate from the declaration of vma? vma = find_vma(); >- if (!vma || vma->vm_start > addr) >+ if (!vma) > return ERR_PTR(-EFAULT); Thanks, Davidlohr
* Davidlohr Bueso <dave@stgolabs.net> [210520 23:47]: > On Mon, 10 May 2021, Liam Howlett wrote: > > > Use vma_lookup() to find the VMA at a specific address. As vma_lookup() > > will return NULL if the address is not within any VMA, the start address > > no longer needs to be validated. > > > > Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com> > > --- > > mm/mremap.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/mm/mremap.c b/mm/mremap.c > > index 47c255b60150..04143755cd1e 100644 > > --- a/mm/mremap.c > > +++ b/mm/mremap.c > > @@ -634,10 +634,10 @@ static struct vm_area_struct *vma_to_resize(unsigned long addr, > > unsigned long *p) > > { > > struct mm_struct *mm = current->mm; > > - struct vm_area_struct *vma = find_vma(mm, addr); > > + struct vm_area_struct *vma = vma_lookup(mm, addr); > > unsigned long pgoff; > > > > Nit, but could the vma_lookup() call be separate from the declaration > of vma? Yes, I will make this change. > > vma = find_vma(); > > - if (!vma || vma->vm_start > addr) > > + if (!vma) > > return ERR_PTR(-EFAULT); > > Thanks, > Davidlohr
diff --git a/mm/mremap.c b/mm/mremap.c index 47c255b60150..04143755cd1e 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -634,10 +634,10 @@ static struct vm_area_struct *vma_to_resize(unsigned long addr, unsigned long *p) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma = find_vma(mm, addr); + struct vm_area_struct *vma = vma_lookup(mm, addr); unsigned long pgoff; - if (!vma || vma->vm_start > addr) + if (!vma) return ERR_PTR(-EFAULT); /*
Use vma_lookup() to find the VMA at a specific address. As vma_lookup() will return NULL if the address is not within any VMA, the start address no longer needs to be validated. Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com> --- mm/mremap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)