diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-10-04 11:34:01 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-10-04 11:34:01 -0400 |
| commit | 013a8ee6284280f8032cadfec37bcc3cfbfff81b (patch) | |
| tree | a321919a3d94aa4adce6b9e4859d7f0a3763a0f6 /kernel/trace | |
| parent | d81fa669e3de7eb8a631d7d95dac5fbcb2bf9d4e (diff) | |
| parent | f39b536ce9248e9799ff900358d6f073ab2e6c55 (diff) | |
Merge tag 'trace-v4.14-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull tracing fixlets from Steven Rostedt:
"Two updates:
- A memory fix with left over code from spliting out ftrace_ops and
function graph tracer, where the function graph tracer could reset
the trampoline pointer, leaving the old trampoline not to be freed
(memory leak).
- The update to Paul's patch that added the unnecessary READ_ONCE().
This removes the unnecessary READ_ONCE() instead of having to
rebase the branch to update the patch that added it"
* tag 'trace-v4.14-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
rcu: Remove extraneous READ_ONCE()s from rcu_irq_{enter,exit}()
ftrace: Fix kmemleak in unregister_ftrace_graph
Diffstat (limited to 'kernel/trace')
| -rw-r--r-- | kernel/trace/ftrace.c | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 6abfafd7f173..8319e09e15b9 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c | |||
| @@ -4954,9 +4954,6 @@ static char ftrace_graph_buf[FTRACE_FILTER_SIZE] __initdata; | |||
| 4954 | static char ftrace_graph_notrace_buf[FTRACE_FILTER_SIZE] __initdata; | 4954 | static char ftrace_graph_notrace_buf[FTRACE_FILTER_SIZE] __initdata; |
| 4955 | static int ftrace_graph_set_hash(struct ftrace_hash *hash, char *buffer); | 4955 | static int ftrace_graph_set_hash(struct ftrace_hash *hash, char *buffer); |
| 4956 | 4956 | ||
| 4957 | static unsigned long save_global_trampoline; | ||
| 4958 | static unsigned long save_global_flags; | ||
| 4959 | |||
| 4960 | static int __init set_graph_function(char *str) | 4957 | static int __init set_graph_function(char *str) |
| 4961 | { | 4958 | { |
| 4962 | strlcpy(ftrace_graph_buf, str, FTRACE_FILTER_SIZE); | 4959 | strlcpy(ftrace_graph_buf, str, FTRACE_FILTER_SIZE); |
| @@ -6808,17 +6805,6 @@ void unregister_ftrace_graph(void) | |||
| 6808 | unregister_pm_notifier(&ftrace_suspend_notifier); | 6805 | unregister_pm_notifier(&ftrace_suspend_notifier); |
| 6809 | unregister_trace_sched_switch(ftrace_graph_probe_sched_switch, NULL); | 6806 | unregister_trace_sched_switch(ftrace_graph_probe_sched_switch, NULL); |
| 6810 | 6807 | ||
| 6811 | #ifdef CONFIG_DYNAMIC_FTRACE | ||
| 6812 | /* | ||
| 6813 | * Function graph does not allocate the trampoline, but | ||
| 6814 | * other global_ops do. We need to reset the ALLOC_TRAMP flag | ||
| 6815 | * if one was used. | ||
| 6816 | */ | ||
| 6817 | global_ops.trampoline = save_global_trampoline; | ||
| 6818 | if (save_global_flags & FTRACE_OPS_FL_ALLOC_TRAMP) | ||
| 6819 | global_ops.flags |= FTRACE_OPS_FL_ALLOC_TRAMP; | ||
| 6820 | #endif | ||
| 6821 | |||
| 6822 | out: | 6808 | out: |
| 6823 | mutex_unlock(&ftrace_lock); | 6809 | mutex_unlock(&ftrace_lock); |
| 6824 | } | 6810 | } |
