diff options
Diffstat (limited to 'kernel/trace')
| -rw-r--r-- | kernel/trace/ftrace.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 1752a63f37c0..f1ed080406c3 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c | |||
| @@ -2719,6 +2719,9 @@ void unregister_ftrace_graph(void) | |||
| 2719 | { | 2719 | { |
| 2720 | mutex_lock(&ftrace_lock); | 2720 | mutex_lock(&ftrace_lock); |
| 2721 | 2721 | ||
| 2722 | if (!unlikely(atomic_read(&ftrace_graph_active))) | ||
| 2723 | goto out; | ||
| 2724 | |||
| 2722 | atomic_dec(&ftrace_graph_active); | 2725 | atomic_dec(&ftrace_graph_active); |
| 2723 | unregister_trace_sched_switch(ftrace_graph_probe_sched_switch); | 2726 | unregister_trace_sched_switch(ftrace_graph_probe_sched_switch); |
| 2724 | ftrace_graph_return = (trace_func_graph_ret_t)ftrace_stub; | 2727 | ftrace_graph_return = (trace_func_graph_ret_t)ftrace_stub; |
| @@ -2726,6 +2729,7 @@ void unregister_ftrace_graph(void) | |||
| 2726 | ftrace_shutdown(FTRACE_STOP_FUNC_RET); | 2729 | ftrace_shutdown(FTRACE_STOP_FUNC_RET); |
| 2727 | unregister_pm_notifier(&ftrace_suspend_notifier); | 2730 | unregister_pm_notifier(&ftrace_suspend_notifier); |
| 2728 | 2731 | ||
| 2732 | out: | ||
| 2729 | mutex_unlock(&ftrace_lock); | 2733 | mutex_unlock(&ftrace_lock); |
| 2730 | } | 2734 | } |
| 2731 | 2735 | ||
