From: Al Viro <viro@zeniv.linux.org.uk>
Date: Thu, 11 Oct 2012 00:09:44 +0000 (-0400)
Subject: make sure that kernel_thread() callbacks call do_exit() themselves
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=fb45550d76bb5;p=linux.git

make sure that kernel_thread() callbacks call do_exit() themselves

Most of them never returned anyway - only two functions had to be
changed.  That allows to simplify their callers a whole lot.

Note that this does *not* apply to kthread_run() callbacks - all of
those had been called from the same kernel_thread() callback, which
did do_exit() already.  This is strictly about very few low-level
kernel_thread() callbacks (there are only 6 of those, mostly as part
of kthread.h and kmod.h exported mechanisms, plus kernel_init()
itself).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---

diff --git a/kernel/kmod.c b/kernel/kmod.c
index 6f99aead66c6b..b6e5ca9c758a5 100644
--- a/kernel/kmod.c
+++ b/kernel/kmod.c
@@ -225,7 +225,7 @@ static int ____call_usermodehelper(void *data)
 	/* Exec failed? */
 fail:
 	sub_info->retval = retval;
-	return 0;
+	do_exit(0);
 }
 
 static int call_helper(void *data)
@@ -292,7 +292,7 @@ static int wait_for_helper(void *data)
 	}
 
 	umh_complete(sub_info);
-	return 0;
+	do_exit(0);
 }
 
 /* This is run by khelper thread  */