diff mbox series

mm/madvise: Use vma_lookup() instead of find_vma()

Message ID 20230404094515.1883552-1-zhangpeng362@huawei.com (mailing list archive)
State New
Headers show
Series mm/madvise: Use vma_lookup() instead of find_vma() | expand

Commit Message

Peng Zhang April 4, 2023, 9:45 a.m. UTC
From: ZhangPeng <zhangpeng362@huawei.com>

Using vma_lookup() verifies the address is contained in the found vma.
This results in easier to read the code.

Signed-off-by: ZhangPeng <zhangpeng362@huawei.com>
---
 mm/madvise.c | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

Comments

Liam R. Howlett April 5, 2023, 5:19 p.m. UTC | #1
* Peng Zhang <zhangpeng362@huawei.com> [230404 05:45]:
> From: ZhangPeng <zhangpeng362@huawei.com>
> 
> Using vma_lookup() verifies the address is contained in the found vma.
> This results in easier to read the code.
> 
> Signed-off-by: ZhangPeng <zhangpeng362@huawei.com>

Reviewed-by: Liam R. Howlett <Liam.Howlett@oracle.com>

> ---
>  mm/madvise.c | 14 +-------------
>  1 file changed, 1 insertion(+), 13 deletions(-)
> 
> diff --git a/mm/madvise.c b/mm/madvise.c
> index 340125d08c03..405a2c4a0a18 100644
> --- a/mm/madvise.c
> +++ b/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.
> -- 
> 2.25.1
> 
>
diff mbox series

Patch

diff --git a/mm/madvise.c b/mm/madvise.c
index 340125d08c03..405a2c4a0a18 100644
--- a/mm/madvise.c
+++ b/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.