diff --git a/kernel/exit.c b/kernel/exit.c
index f95a2c1338a8588904857296d5e6ffe908269633..81fcee45d6302e9a4dce57613323d0bfe6758344 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -484,6 +484,8 @@ void mm_update_next_owner(struct mm_struct *mm)
 	 * Search through everything else, we should not get here often.
 	 */
 	for_each_process(g) {
+		if (atomic_read(&mm->mm_users) <= 1)
+			break;
 		if (g->flags & PF_KTHREAD)
 			continue;
 		for_each_thread(g, c) {