aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Morton <[email protected]>2012-07-30 14:42:17 -0700
committerLinus Torvalds <[email protected]>2012-07-30 17:25:20 -0700
commit79c743dd1e8de61c31f484c0a1b48930543044b3 (patch)
treeba52350fdd587f56182e9d92f94c37f0519c79a2
parentdeb8274a0cf44827ec260330cc1d94d0f3dcfb94 (diff)
kernel/kmod.c: document call_usermodehelper_fns() a bit
This function's interface is, uh, subtle. Attempt to apologise for it. Cc: WANG Cong <[email protected]> Cc: Cyrill Gorcunov <[email protected]> Cc: Kees Cook <[email protected]> Cc: Serge Hallyn <[email protected]> Cc: "Eric W. Biederman" <[email protected]> Cc: Alan Cox <[email protected]> Cc: Oleg Nesterov <[email protected]> Cc: Rusty Russell <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r--kernel/kmod.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/kmod.c b/kernel/kmod.c
index ff2c7cb86d77..2a8351516a0e 100644
--- a/kernel/kmod.c
+++ b/kernel/kmod.c
@@ -577,6 +577,12 @@ unlock:
return retval;
}
+/*
+ * call_usermodehelper_fns() will not run the caller-provided cleanup function
+ * if a memory allocation failure is experienced. So the caller might need to
+ * check the call_usermodehelper_fns() return value: if it is -ENOMEM, perform
+ * the necessaary cleanup within the caller.
+ */
int call_usermodehelper_fns(
char *path, char **argv, char **envp, int wait,
int (*init)(struct subprocess_info *info, struct cred *new),