Commit 5da3ff1f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ftrace fix from Steven Rostedt:

 - Do not blindly enable function_graph tracer when updating
   funcgraph-args

   When the option to trace function arguments in the function graph
   trace is updated, it requires the function graph tracer to switch its
   callback routine. It disables function graph tracing, updates the
   callback and then re-enables function graph tracing.

   The issue is that it doesn't check if function graph tracing is
   currently enabled or not. If it is not enabled, it will try to
   disable it and re-enable it (which will actually enable it even
   though it is not the current tracer). This causes an issue in the
   accounting and will trigger a WARN_ON() if the function tracer is
   enabled after that.

* tag 'ftrace-v6.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
  fgraph: Do not enable function_graph tracer when setting funcgraph-args
parents 5a3b583f 327e2866
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -455,10 +455,16 @@ static int graph_trace_init(struct trace_array *tr)
	return 0;
}

static struct tracer graph_trace;

static int ftrace_graph_trace_args(struct trace_array *tr, int set)
{
	trace_func_graph_ent_t entry;

	/* Do nothing if the current tracer is not this tracer */
	if (tr->current_trace != &graph_trace)
		return 0;

	if (set)
		entry = trace_graph_entry_args;
	else