diff options
Diffstat (limited to 'kernel/trace/trace_functions.c')
| -rw-r--r-- | kernel/trace/trace_functions.c | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/trace/trace_functions.c b/kernel/trace/trace_functions.c index c9a0b7df44f..90f13476483 100644 --- a/kernel/trace/trace_functions.c +++ b/kernel/trace/trace_functions.c @@ -193,9 +193,11 @@ static void tracing_start_function_trace(void)  static void tracing_stop_function_trace(void)  {  	ftrace_function_enabled = 0; -	/* OK if they are not registered */ -	unregister_ftrace_function(&trace_stack_ops); -	unregister_ftrace_function(&trace_ops); + +	if (func_flags.val & TRACE_FUNC_OPT_STACK) +		unregister_ftrace_function(&trace_stack_ops); +	else +		unregister_ftrace_function(&trace_ops);  }  static int func_set_flag(u32 old_flags, u32 bit, int set)  | 
