diff --git a/mm/mprotect.c b/mm/mprotect.c
index 1d4843c97c2a1f97a97dde4608ebf1ea74878f47..231929f119d958f73aba0680b6ed8bae8493b35d 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -832,6 +832,7 @@ static int do_mprotect_pkey(unsigned long start, size_t len,
 		if (error)
 			break;
 
+		tmp = vma_iter_end(&vmi);
 		nstart = tmp;
 		prot = reqprot;
 	}