summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorGabriele Monaco <gmonaco@redhat.com>2025-04-02 09:13:52 +0200
committerSteven Rostedt (Google) <rostedt@goodmis.org>2025-04-02 09:51:26 -0400
commitfc0585c7faa9fffa0ecdd6e2466e3293cd3239ac (patch)
tree750e12b5e77b6f2cfb3c57ea306a411b056a1690 /kernel
parent023f124a64174c47e18340ded7e2a39b96eb9523 (diff)
rv: Fix missing unlock on double nested monitors return path
RV doesn't support nested monitors having children monitors themselves and exits with the EINVAL code. However, it returns without unlocking the rv_interface_lock. Unlock the lock before returning from the initialisation function. Cc: Masami Hiramatsu <mhiramat@kernel.org> Link: https://lore.kernel.org/20250402071351.19864-2-gmonaco@redhat.com Fixes: cb85c660fcd4 ("rv: Add option for nested monitors and include sched") Reported-by: kernel test robot <lkp@intel.com> Reported-by: Julia Lawall <julia.lawall@inria.fr> Closes: https://lore.kernel.org/r/202503310200.UBXGitB4-lkp@intel.com Signed-off-by: Gabriele Monaco <gmonaco@redhat.com> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/trace/rv/rv.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/trace/rv/rv.c b/kernel/trace/rv/rv.c
index 50344aa9f7f9..968c5c3b0246 100644
--- a/kernel/trace/rv/rv.c
+++ b/kernel/trace/rv/rv.c
@@ -809,7 +809,8 @@ int rv_register_monitor(struct rv_monitor *monitor, struct rv_monitor *parent)
if (p && rv_is_nested_monitor(p)) {
pr_info("Parent monitor %s is already nested, cannot nest further\n",
parent->name);
- return -EINVAL;
+ retval = -EINVAL;
+ goto out_unlock;
}
r = kzalloc(sizeof(struct rv_monitor_def), GFP_KERNEL);