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@xxxxxxxxxx> --- 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