[PATCH 3.15 016/109] tracing: Fix graph tracer with stack tracer on other archs

From: Greg Kroah-Hartman
Date: Sat Jul 26 2014 - 15:41:26 EST

3.15-stable review patch. If anyone has any objections, please let me know.


From: "Steven Rostedt (Red Hat)" <rostedt@xxxxxxxxxxx>

commit 5f8bf2d263a20b986225ae1ed7d6759dc4b93af9 upstream.

Running my ftrace tests on PowerPC, it failed the test that checks
if function_graph tracer is affected by the stack tracer. It was.
Looking into this, I found that the update_function_graph_func()
must be called even if the trampoline function is not changed.
This is because archs like PowerPC do not support ftrace_ops being
passed by assembly and instead uses a helper function (what the
trampoline function points to). Since this function is not changed
even when multiple ftrace_ops are added to the code, the test that
falls out before calling update_function_graph_func() will miss that
the update must still be done.

Call update_function_graph_function() for all calls to

Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

kernel/trace/ftrace.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -325,12 +325,12 @@ static void update_ftrace_function(void)
func = ftrace_ops_list_func;

+ update_function_graph_func();
/* If there's no change, then do nothing more here */
if (ftrace_trace_function == func)

- update_function_graph_func();
* If we are using the list function, it doesn't care
* about the function_trace_ops.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/