diff --git a/mm/madvise.c b/mm/madvise.c
index 4f86eb7f554d65c6762b39ea710eedb55f098745..a3fc4cd32ed364dafa78712f98f13bd054ef8624 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -1245,7 +1245,7 @@ int madvise_walk_vmas(struct mm_struct *mm, unsigned long start,
 		if (start >= end)
 			break;
 		if (prev)
-			vma = prev->vm_next;
+			vma = find_vma(mm, prev->vm_end);
 		else	/* madvise_remove dropped mmap_lock */
 			vma = find_vma(mm, start);
 	}