| From: Chunyu Hu <chuhu@redhat.com> |
| Date: Tue, 3 May 2016 19:34:34 +0800 |
| Subject: tracing: Don't display trigger file for events that can't be enabled |
| |
| commit 854145e0a8e9a05f7366d240e2f99d9c1ca6d6dd upstream. |
| |
| Currently register functions for events will be called |
| through the 'reg' field of event class directly without |
| any check when seting up triggers. |
| |
| Triggers for events that don't support register through |
| debug fs (events under events/ftrace are for trace-cmd to |
| read event format, and most of them don't have a register |
| function except events/ftrace/functionx) can't be enabled |
| at all, and an oops will be hit when setting up trigger |
| for those events, so just not creating them is an easy way |
| to avoid the oops. |
| |
| Link: http://lkml.kernel.org/r/1462275274-3911-1-git-send-email-chuhu@redhat.com |
| |
| Fixes: 85f2b08268c01 ("tracing: Add basic event trigger framework") |
| Signed-off-by: Chunyu Hu <chuhu@redhat.com> |
| Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| kernel/trace/trace_events.c | 9 +++++++-- |
| 1 file changed, 7 insertions(+), 2 deletions(-) |
| |
| --- a/kernel/trace/trace_events.c |
| +++ b/kernel/trace/trace_events.c |
| @@ -1584,8 +1584,13 @@ event_create_dir(struct dentry *parent, |
| trace_create_file("filter", 0644, file->dir, file, |
| &ftrace_event_filter_fops); |
| |
| - trace_create_file("trigger", 0644, file->dir, file, |
| - &event_trigger_fops); |
| + /* |
| + * Only event directories that can be enabled should have |
| + * triggers. |
| + */ |
| + if (!(call->flags & TRACE_EVENT_FL_IGNORE_ENABLE)) |
| + trace_create_file("trigger", 0644, file->dir, file, |
| + &event_trigger_fops); |
| |
| trace_create_file("format", 0444, file->dir, call, |
| &ftrace_event_format_fops); |