The patch titled Subject: mm/madvise: use vma_lookup() instead of find_vma() has been added to the -mm mm-unstable branch. Its filename is mm-madvise-use-vma_lookup-instead-of-find_vma.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-madvise-use-vma_lookup-instead-of-find_vma.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: ZhangPeng <zhangpeng362@xxxxxxxxxx> Subject: mm/madvise: use vma_lookup() instead of find_vma() Date: Tue, 4 Apr 2023 17:45:15 +0800 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@xxxxxxxxxx Signed-off-by: ZhangPeng <zhangpeng362@xxxxxxxxxx> Cc: Liam Howlett <liam.howlett@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/madvise.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) --- a/mm/madvise.c~mm-madvise-use-vma_lookup-instead-of-find_vma +++ a/mm/madvise.c @@ -852,21 +852,9 @@ static long madvise_dontneed_free(struct *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. _ Patches currently in -mm which might be from zhangpeng362@xxxxxxxxxx are userfaultfd-convert-mfill_atomic_pte_copy-to-use-a-folio.patch userfaultfd-use-kmap_local_page-in-copy_huge_page_from_user.patch userfaultfd-convert-copy_huge_page_from_user-to-copy_folio_from_user.patch userfaultfd-convert-mfill_atomic_hugetlb-to-use-a-folio.patch mm-convert-copy_user_huge_page-to-copy_user_folio.patch userfaultfd-convert-mfill_atomic-to-use-a-folio.patch mm-madvise-use-vma_lookup-instead-of-find_vma.patch