mm/madvise: use vma_lookup() instead of find_vma()
Using vma_lookup() verifies the address is contained in the found vma. This results in easier to read the code. Link: https://lkml.kernel.org/r/20230404094515.1883552-1-zhangpeng362@huawei.com Signed-off-by: ZhangPeng <zhangpeng362@huawei.com> Reviewed-by: Liam R. Howlett <Liam.Howlett@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
6b0ba2abbe
commit
92d5df38ca
14
mm/madvise.c
14
mm/madvise.c
@ -852,21 +852,9 @@ static long madvise_dontneed_free(struct vm_area_struct *vma,
|
||||
*prev = NULL; /* mmap_lock has been dropped, prev is stale */
|
||||
|
||||
mmap_read_lock(mm);
|
||||
vma = find_vma(mm, start);
|
||||
vma = vma_lookup(mm, start);
|
||||
if (!vma)
|
||||
return -ENOMEM;
|
||||
if (start < vma->vm_start) {
|
||||
/*
|
||||
* This "vma" under revalidation is the one
|
||||
* with the lowest vma->vm_start where start
|
||||
* is also < vma->vm_end. If start <
|
||||
* vma->vm_start it means an hole materialized
|
||||
* in the user address space within the
|
||||
* virtual range passed to MADV_DONTNEED
|
||||
* or MADV_FREE.
|
||||
*/
|
||||
return -ENOMEM;
|
||||
}
|
||||
/*
|
||||
* Potential end adjustment for hugetlb vma is OK as
|
||||
* the check below keeps end within vma.
|
||||
|
Loading…
Reference in New Issue
Block a user