|
@@ -1489,12 +1489,7 @@ event_subsystem_dir(struct trace_array *tr, const char *name,
|
|
|
}
|
|
|
|
|
|
static int
|
|
|
-event_create_dir(struct dentry *parent,
|
|
|
- struct ftrace_event_file *file,
|
|
|
- const struct file_operations *id,
|
|
|
- const struct file_operations *enable,
|
|
|
- const struct file_operations *filter,
|
|
|
- const struct file_operations *format)
|
|
|
+event_create_dir(struct dentry *parent, struct ftrace_event_file *file)
|
|
|
{
|
|
|
struct ftrace_event_call *call = file->event_call;
|
|
|
struct trace_array *tr = file->tr;
|
|
@@ -1522,12 +1517,13 @@ event_create_dir(struct dentry *parent,
|
|
|
|
|
|
if (call->class->reg && !(call->flags & TRACE_EVENT_FL_IGNORE_ENABLE))
|
|
|
trace_create_file("enable", 0644, file->dir, file,
|
|
|
- enable);
|
|
|
+ &ftrace_enable_fops);
|
|
|
|
|
|
#ifdef CONFIG_PERF_EVENTS
|
|
|
if (call->event.type && call->class->reg)
|
|
|
trace_create_file("id", 0444, file->dir,
|
|
|
- (void *)(long)call->event.type, id);
|
|
|
+ (void *)(long)call->event.type,
|
|
|
+ &ftrace_event_id_fops);
|
|
|
#endif
|
|
|
|
|
|
/*
|
|
@@ -1544,10 +1540,10 @@ event_create_dir(struct dentry *parent,
|
|
|
}
|
|
|
}
|
|
|
trace_create_file("filter", 0644, file->dir, call,
|
|
|
- filter);
|
|
|
+ &ftrace_event_filter_fops);
|
|
|
|
|
|
trace_create_file("format", 0444, file->dir, call,
|
|
|
- format);
|
|
|
+ &ftrace_event_format_fops);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -1648,12 +1644,7 @@ trace_create_new_event(struct ftrace_event_call *call,
|
|
|
|
|
|
/* Add an event to a trace directory */
|
|
|
static int
|
|
|
-__trace_add_new_event(struct ftrace_event_call *call,
|
|
|
- struct trace_array *tr,
|
|
|
- const struct file_operations *id,
|
|
|
- const struct file_operations *enable,
|
|
|
- const struct file_operations *filter,
|
|
|
- const struct file_operations *format)
|
|
|
+__trace_add_new_event(struct ftrace_event_call *call, struct trace_array *tr)
|
|
|
{
|
|
|
struct ftrace_event_file *file;
|
|
|
|
|
@@ -1661,7 +1652,7 @@ __trace_add_new_event(struct ftrace_event_call *call,
|
|
|
if (!file)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
- return event_create_dir(tr->event_dir, file, id, enable, filter, format);
|
|
|
+ return event_create_dir(tr->event_dir, file);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -1845,11 +1836,7 @@ __trace_add_event_dirs(struct trace_array *tr)
|
|
|
int ret;
|
|
|
|
|
|
list_for_each_entry(call, &ftrace_events, list) {
|
|
|
- ret = __trace_add_new_event(call, tr,
|
|
|
- &ftrace_event_id_fops,
|
|
|
- &ftrace_enable_fops,
|
|
|
- &ftrace_event_filter_fops,
|
|
|
- &ftrace_event_format_fops);
|
|
|
+ ret = __trace_add_new_event(call, tr);
|
|
|
if (ret < 0)
|
|
|
pr_warning("Could not create directory for event %s\n",
|
|
|
call->name);
|
|
@@ -2157,11 +2144,7 @@ __trace_early_add_event_dirs(struct trace_array *tr)
|
|
|
|
|
|
|
|
|
list_for_each_entry(file, &tr->events, list) {
|
|
|
- ret = event_create_dir(tr->event_dir, file,
|
|
|
- &ftrace_event_id_fops,
|
|
|
- &ftrace_enable_fops,
|
|
|
- &ftrace_event_filter_fops,
|
|
|
- &ftrace_event_format_fops);
|
|
|
+ ret = event_create_dir(tr->event_dir, file);
|
|
|
if (ret < 0)
|
|
|
pr_warning("Could not create directory for event %s\n",
|
|
|
file->event_call->name);
|
|
@@ -2206,13 +2189,8 @@ static void __add_event_to_tracers(struct ftrace_event_call *call)
|
|
|
{
|
|
|
struct trace_array *tr;
|
|
|
|
|
|
- list_for_each_entry(tr, &ftrace_trace_arrays, list) {
|
|
|
- __trace_add_new_event(call, tr,
|
|
|
- &ftrace_event_id_fops,
|
|
|
- &ftrace_enable_fops,
|
|
|
- &ftrace_event_filter_fops,
|
|
|
- &ftrace_event_format_fops);
|
|
|
- }
|
|
|
+ list_for_each_entry(tr, &ftrace_trace_arrays, list)
|
|
|
+ __trace_add_new_event(call, tr);
|
|
|
}
|
|
|
|
|
|
static struct notifier_block trace_module_nb = {
|