summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhen Ni <zhen.ni@easystack.cn>2025-09-03 14:51:12 +0800
committerGabriele Monaco <gmonaco@redhat.com>2025-09-15 08:36:35 +0200
commit9b5096761c184b3923ae45c5e82da31005a765c7 (patch)
treec2b1ae4074f9facf37734a71026a51d5a1630847
parent3afaff7a0ce97457c8ab46862f2c06603a89962e (diff)
rv: Fix missing mutex unlock in rv_register_monitor()
If create_monitor_dir() fails, the function returns directly without releasing rv_interface_lock. This leaves the mutex locked and causes subsequent monitor registration attempts to deadlock. Fix it by making the error path jump to out_unlock, ensuring that the mutex is always released before returning. Fixes: 24cbfe18d55a ("rv: Merge struct rv_monitor_def into struct rv_monitor") Signed-off-by: Zhen Ni <zhen.ni@easystack.cn> Reviewed-by: Gabriele Monaco <gmonaco@redhat.com> Reviewed-by: Nam Cao <namcao@linutronix.de> Link: https://lore.kernel.org/r/20250903065112.1878330-1-zhen.ni@easystack.cn Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
-rw-r--r--kernel/trace/rv/rv.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/trace/rv/rv.c b/kernel/trace/rv/rv.c
index b341445b8fbd..48338520376f 100644
--- a/kernel/trace/rv/rv.c
+++ b/kernel/trace/rv/rv.c
@@ -805,7 +805,7 @@ int rv_register_monitor(struct rv_monitor *monitor, struct rv_monitor *parent)
retval = create_monitor_dir(monitor, parent);
if (retval)
- return retval;
+ goto out_unlock;
/* keep children close to the parent for easier visualisation */
if (parent)