summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorGabriele Paoloni <gpaoloni@redhat.com>2025-03-21 18:08:21 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-04-20 10:15:21 +0200
commit40c70ff44b70564b01f53d0cd86bfb38e7653b37 (patch)
treedee455d06bfa22173f09f284263c57ca280cf150 /kernel
parent299d7d27af6b5844cda06a0fdfa635705e1bc50f (diff)
downloadlinux-40c70ff44b70564b01f53d0cd86bfb38e7653b37.tar.gz
linux-40c70ff44b70564b01f53d0cd86bfb38e7653b37.tar.bz2
linux-40c70ff44b70564b01f53d0cd86bfb38e7653b37.zip
tracing: fix return value in __ftrace_event_enable_disable for TRACE_REG_UNREGISTER
[ Upstream commit 0c588ac0ca6c22b774d9ad4a6594681fdfa57d9d ] When __ftrace_event_enable_disable invokes the class callback to unregister the event, the return value is not reported up to the caller, hence leading to event unregister failures being silently ignored. This patch assigns the ret variable to the invocation of the event unregister callback, so that its return value is stored and reported to the caller, and it raises a warning in case of error. Link: https://lore.kernel.org/20250321170821.101403-1-gpaoloni@redhat.com Signed-off-by: Gabriele Paoloni <gpaoloni@redhat.com> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/trace/trace_events.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index 29eba68e0785..11dea25ef880 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -790,7 +790,9 @@ static int __ftrace_event_enable_disable(struct trace_event_file *file,
clear_bit(EVENT_FILE_FL_RECORDED_TGID_BIT, &file->flags);
}
- call->class->reg(call, TRACE_REG_UNREGISTER, file);
+ ret = call->class->reg(call, TRACE_REG_UNREGISTER, file);
+
+ WARN_ON_ONCE(ret);
}
/* If in SOFT_MODE, just set the SOFT_DISABLE_BIT, else clear it */
if (file->flags & EVENT_FILE_FL_SOFT_MODE)