ftrace: Set callback to ftrace_stub when no ops are registered
The clean up that adds the helper function ftrace_ops_get_func() caused the default function to not change when DYNAMIC_FTRACE was not set and no ftrace_ops were registered. Although static tracing is not very useful (not having DYNAMIC_FTRACE set), it is still supported and we don't want to break it. Clean up the if statement even more to specifically have the default function call ftrace_stub when no ftrace_ops are registered. This fixes the small bug for static tracing as well as makes the code a bit more understandable. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
8735405988
commit
f7aad4e1a8
|
@ -253,18 +253,25 @@ static void update_ftrace_function(void)
|
||||||
{
|
{
|
||||||
ftrace_func_t func;
|
ftrace_func_t func;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Prepare the ftrace_ops that the arch callback will use.
|
||||||
|
* If there's only one ftrace_ops registered, the ftrace_ops_list
|
||||||
|
* will point to the ops we want.
|
||||||
|
*/
|
||||||
|
set_function_trace_op = ftrace_ops_list;
|
||||||
|
|
||||||
|
/* If there's no ftrace_ops registered, just call the stub function */
|
||||||
|
if (ftrace_ops_list == &ftrace_list_end) {
|
||||||
|
func = ftrace_stub;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If we are at the end of the list and this ops is
|
* If we are at the end of the list and this ops is
|
||||||
* recursion safe and not dynamic and the arch supports passing ops,
|
* recursion safe and not dynamic and the arch supports passing ops,
|
||||||
* then have the mcount trampoline call the function directly.
|
* then have the mcount trampoline call the function directly.
|
||||||
*/
|
*/
|
||||||
if (ftrace_ops_list == &ftrace_list_end ||
|
} else if (ftrace_ops_list->next == &ftrace_list_end) {
|
||||||
(ftrace_ops_list->next == &ftrace_list_end)) {
|
|
||||||
|
|
||||||
/* Set the ftrace_ops that the arch callback uses */
|
|
||||||
set_function_trace_op = ftrace_ops_list;
|
|
||||||
|
|
||||||
func = ftrace_ops_get_func(ftrace_ops_list);
|
func = ftrace_ops_get_func(ftrace_ops_list);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
/* Just use the default ftrace_ops */
|
/* Just use the default ftrace_ops */
|
||||||
set_function_trace_op = &ftrace_list_end;
|
set_function_trace_op = &ftrace_list_end;
|
||||||
|
|
Loading…
Reference in New Issue