diff options
| author | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2017-07-11 19:21:04 -0400 |
|---|---|---|
| committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2017-07-11 19:21:04 -0400 |
| commit | bbd1d27d863d5c0acee65ecd0c2e34035e1df5ea (patch) | |
| tree | 51b0930471b32f25996e5968b4cfc2428d3cd00a /kernel | |
| parent | dc8d387210e3e2ab294031e8f6542329bc9141c4 (diff) | |
tracing: Do note expose stack_trace_filter without DYNAMIC_FTRACE
The "stack_trace_filter" file only makes sense if DYNAMIC_FTRACE is
configured in. If it is not, then the user can not filter any functions.
Not only that, the open function causes warnings when DYNAMIC_FTRACE is not
set.
Link: http://lkml.kernel.org/r/20170710110521.600806-1-arnd@arndb.de
Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/trace/trace_stack.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c index b4a751e8f9d6..a4df67cbc711 100644 --- a/kernel/trace/trace_stack.c +++ b/kernel/trace/trace_stack.c | |||
| @@ -406,6 +406,8 @@ static const struct file_operations stack_trace_fops = { | |||
| 406 | .release = seq_release, | 406 | .release = seq_release, |
| 407 | }; | 407 | }; |
| 408 | 408 | ||
| 409 | #ifdef CONFIG_DYNAMIC_FTRACE | ||
| 410 | |||
| 409 | static int | 411 | static int |
| 410 | stack_trace_filter_open(struct inode *inode, struct file *file) | 412 | stack_trace_filter_open(struct inode *inode, struct file *file) |
| 411 | { | 413 | { |
| @@ -423,6 +425,8 @@ static const struct file_operations stack_trace_filter_fops = { | |||
| 423 | .release = ftrace_regex_release, | 425 | .release = ftrace_regex_release, |
| 424 | }; | 426 | }; |
| 425 | 427 | ||
| 428 | #endif /* CONFIG_DYNAMIC_FTRACE */ | ||
| 429 | |||
| 426 | int | 430 | int |
| 427 | stack_trace_sysctl(struct ctl_table *table, int write, | 431 | stack_trace_sysctl(struct ctl_table *table, int write, |
| 428 | void __user *buffer, size_t *lenp, | 432 | void __user *buffer, size_t *lenp, |
| @@ -477,8 +481,10 @@ static __init int stack_trace_init(void) | |||
| 477 | trace_create_file("stack_trace", 0444, d_tracer, | 481 | trace_create_file("stack_trace", 0444, d_tracer, |
| 478 | NULL, &stack_trace_fops); | 482 | NULL, &stack_trace_fops); |
| 479 | 483 | ||
| 484 | #ifdef CONFIG_DYNAMIC_FTRACE | ||
| 480 | trace_create_file("stack_trace_filter", 0444, d_tracer, | 485 | trace_create_file("stack_trace_filter", 0444, d_tracer, |
| 481 | &trace_ops, &stack_trace_filter_fops); | 486 | &trace_ops, &stack_trace_filter_fops); |
| 487 | #endif | ||
| 482 | 488 | ||
| 483 | if (stack_trace_filter_buf[0]) | 489 | if (stack_trace_filter_buf[0]) |
| 484 | ftrace_set_early_filter(&trace_ops, stack_trace_filter_buf, 1); | 490 | ftrace_set_early_filter(&trace_ops, stack_trace_filter_buf, 1); |
