diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c index c83c005e654e3fed617fcc1e05359f06aa0ed74e..7956a799b5e8f84b79e25af09c569238c9bb0c96 100644 --- a/kernel/trace/fgraph.c +++ b/kernel/trace/fgraph.c @@ -648,6 +648,7 @@ int register_ftrace_graph(struct fgraph_ops *gops) ret = start_graph_tracing(); if (ret) { ftrace_graph_active--; + unregister_pm_notifier(&ftrace_suspend_notifier); goto out; } @@ -664,6 +665,8 @@ int register_ftrace_graph(struct fgraph_ops *gops) update_function_graph_func(); ret = ftrace_startup(&graph_ops, FTRACE_START_FUNC_RET); + if (ret) + unregister_pm_notifier(&ftrace_suspend_notifier); out: mutex_unlock(&ftrace_lock); return ret;