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>
This commit is contained in:
Al Viro 2012-10-10 20:09:44 -04:00
parent d6b2123802
commit fb45550d76

View File

@ -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 */