diff --git a/mm/mlock.c b/mm/mlock.c
index d63802663242eb6ad13ca2ed065434f24fd7e5d1..67ba6da7d0e311b1b45007bbd0e37bd78db0f3a8 100644
--- a/mm/mlock.c
+++ b/mm/mlock.c
@@ -736,6 +736,7 @@ static int do_mlockall(int flags)
 
 		/* Ignore errors */
 		mlock_fixup(vma, &prev, vma->vm_start, vma->vm_end, newflags);
+		cond_resched();
 	}
 out:
 	return 0;