diff options
Diffstat (limited to 'kernel/kmod.c')
| -rw-r--r-- | kernel/kmod.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/kmod.c b/kernel/kmod.c index 6f99aead66c..1c317e38683 100644 --- a/kernel/kmod.c +++ b/kernel/kmod.c @@ -37,6 +37,7 @@  #include <linux/notifier.h>  #include <linux/suspend.h>  #include <linux/rwsem.h> +#include <linux/ptrace.h>  #include <asm/uaccess.h>  #include <trace/events/module.h> @@ -221,11 +222,13 @@ static int ____call_usermodehelper(void *data)  	retval = kernel_execve(sub_info->path,  			       (const char *const *)sub_info->argv,  			       (const char *const *)sub_info->envp); +	if (!retval) +		return 0;  	/* Exec failed? */  fail:  	sub_info->retval = retval; -	return 0; +	do_exit(0);  }  static int call_helper(void *data) @@ -292,7 +295,7 @@ static int wait_for_helper(void *data)  	}  	umh_complete(sub_info); -	return 0; +	do_exit(0);  }  /* This is run by khelper thread  */  |