diff options
author | 2016-03-29 21:53:03 +0000 | |
---|---|---|
committer | 2016-03-29 21:53:03 +0000 | |
commit | 16b02d711f4059b8338ef967064195b47cae65ea (patch) | |
tree | 6d3e0b7629210b56f8d6cfa39184c878d8a15367 /kernel/trace/trace_functions.c | |
parent | sched/preempt, sh: kmap_coherent relies on disabled preemption (diff) | |
parent | Linux 4.6-rc1 (diff) | |
download | wireguard-linux-16b02d711f4059b8338ef967064195b47cae65ea.tar.xz wireguard-linux-16b02d711f4059b8338ef967064195b47cae65ea.zip |
Merge tag 'v4.6-rc1'
Linux 4.6-rc1
Diffstat (limited to 'kernel/trace/trace_functions.c')
-rw-r--r-- | kernel/trace/trace_functions.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/trace/trace_functions.c b/kernel/trace/trace_functions.c index fcd41a166405..5a095c2e4b69 100644 --- a/kernel/trace/trace_functions.c +++ b/kernel/trace/trace_functions.c @@ -219,6 +219,8 @@ static void tracing_stop_function_trace(struct trace_array *tr) unregister_ftrace_function(tr->ops); } +static struct tracer function_trace; + static int func_set_flag(struct trace_array *tr, u32 old_flags, u32 bit, int set) { @@ -228,6 +230,10 @@ func_set_flag(struct trace_array *tr, u32 old_flags, u32 bit, int set) if (!!set == !!(func_flags.val & TRACE_FUNC_OPT_STACK)) break; + /* We can change this flag when not running. */ + if (tr->current_trace != &function_trace) + break; + unregister_ftrace_function(tr->ops); if (set) { |