[PATCH] tracing: Skip software disabled event at __synth_event_trace_end()

From: Masami Hiramatsu
Date: Wed Feb 12 2020 - 00:54:25 EST


When the synthetic event is software disabled,
__synth_event_trace_start() does not allocate an event buffer.
In this case __synth_event_trace_end() also should not commit
the buffer.

Check the trace_state->disabled at __synth_event_trace_end()
and if it is disabled, skip it.

Signed-off-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
---
kernel/trace/trace_events_hist.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
index 483b3fd1094f..781e4b55e117 100644
--- a/kernel/trace/trace_events_hist.c
+++ b/kernel/trace/trace_events_hist.c
@@ -1847,6 +1847,9 @@ __synth_event_trace_start(struct trace_event_file *file,
static inline void
__synth_event_trace_end(struct synth_event_trace_state *trace_state)
{
+ if (trace_state->disabled)
+ return;
+
trace_event_buffer_commit(&trace_state->fbuffer);

ring_buffer_nest_end(trace_state->buffer);