summaryrefslogtreecommitdiff
path: root/kernel/usermode_driver.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2021-04-02 12:33:16 +0200
committerIngo Molnar <mingo@kernel.org>2021-04-02 12:33:16 +0200
commite855e80d001530ec0bbb1ee1ca6a16ac6bdf9acf (patch)
tree5f762f2992658891c565af4f923147b384bf0dd4 /kernel/usermode_driver.c
parentf2ac256b9a8b7e79847efcd82bd10fd876369b9f (diff)
parenta5e13c6df0e41702d2b2c77c8ad41677ebb065b3 (diff)
Merge tag 'v5.12-rc5' into WIP.x86/core, to pick up recent NOP related changes
In particular we want to have this upstream commit: b90829704780: ("bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG") ... before merging in x86/cpu changes and the removal of the NOP optimizations, and applying PeterZ's !retpoline objtool series. Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/usermode_driver.c')
-rw-r--r--kernel/usermode_driver.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/kernel/usermode_driver.c b/kernel/usermode_driver.c
index 0b35212ffc3d..bb7bb3b478ab 100644
--- a/kernel/usermode_driver.c
+++ b/kernel/usermode_driver.c
@@ -139,13 +139,22 @@ static void umd_cleanup(struct subprocess_info *info)
struct umd_info *umd_info = info->data;
/* cleanup if umh_setup() was successful but exec failed */
- if (info->retval) {
- fput(umd_info->pipe_to_umh);
- fput(umd_info->pipe_from_umh);
- put_pid(umd_info->tgid);
- umd_info->tgid = NULL;
- }
+ if (info->retval)
+ umd_cleanup_helper(umd_info);
+}
+
+/**
+ * umd_cleanup_helper - release the resources which were allocated in umd_setup
+ * @info: information about usermode driver
+ */
+void umd_cleanup_helper(struct umd_info *info)
+{
+ fput(info->pipe_to_umh);
+ fput(info->pipe_from_umh);
+ put_pid(info->tgid);
+ info->tgid = NULL;
}
+EXPORT_SYMBOL_GPL(umd_cleanup_helper);
/**
* fork_usermode_driver - fork a usermode driver