tracing: Disable "other" permission bits in the tracefs files
authorSteven Rostedt (VMware) <rostedt@goodmis.org>
Wed, 18 Aug 2021 15:24:51 +0000 (11:24 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Nov 2021 18:16:15 +0000 (19:16 +0100)
[ Upstream commit 21ccc9cd72116289469e5519b6159c675a2fa58f ]

When building the files in the tracefs file system, do not by default set
any permissions for OTH (other). This will make it easier for admins who
want to define a group for accessing tracefs and not having to first
disable all the permission bits for "other" in the file system.

As tracing can leak sensitive information, it should never by default
allowing all users access. An admin can still set the permission bits for
others to have access, which may be useful for creating a honeypot and
seeing who takes advantage of it and roots the machine.

Link: https://lkml.kernel.org/r/20210818153038.864149276@goodmis.org
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
15 files changed:
kernel/trace/ftrace.c
kernel/trace/trace.c
kernel/trace/trace.h
kernel/trace/trace_dynevent.c
kernel/trace/trace_events.c
kernel/trace/trace_events_synth.c
kernel/trace/trace_functions_graph.c
kernel/trace/trace_hwlat.c
kernel/trace/trace_kprobe.c
kernel/trace/trace_osnoise.c
kernel/trace/trace_printk.c
kernel/trace/trace_recursion_record.c
kernel/trace/trace_stack.c
kernel/trace/trace_stat.c
kernel/trace/trace_uprobe.c

index feebf57c64588a8be294b051a9e4060b6697fa00..c672040142e984c78c73292e644d1baef8420424 100644 (file)
@@ -988,8 +988,9 @@ static __init void ftrace_profile_tracefs(struct dentry *d_tracer)
                }
        }
 
-       entry = tracefs_create_file("function_profile_enabled", 0644,
-                                   d_tracer, NULL, &ftrace_profile_fops);
+       entry = tracefs_create_file("function_profile_enabled",
+                                   TRACE_MODE_WRITE, d_tracer, NULL,
+                                   &ftrace_profile_fops);
        if (!entry)
                pr_warn("Could not create tracefs 'function_profile_enabled' entry\n");
 }
@@ -6109,10 +6110,10 @@ void ftrace_create_filter_files(struct ftrace_ops *ops,
                                struct dentry *parent)
 {
 
-       trace_create_file("set_ftrace_filter", 0644, parent,
+       trace_create_file("set_ftrace_filter", TRACE_MODE_WRITE, parent,
                          ops, &ftrace_filter_fops);
 
-       trace_create_file("set_ftrace_notrace", 0644, parent,
+       trace_create_file("set_ftrace_notrace", TRACE_MODE_WRITE, parent,
                          ops, &ftrace_notrace_fops);
 }
 
@@ -6139,19 +6140,19 @@ void ftrace_destroy_filter_files(struct ftrace_ops *ops)
 static __init int ftrace_init_dyn_tracefs(struct dentry *d_tracer)
 {
 
-       trace_create_file("available_filter_functions", 0444,
+       trace_create_file("available_filter_functions", TRACE_MODE_READ,
                        d_tracer, NULL, &ftrace_avail_fops);
 
-       trace_create_file("enabled_functions", 0444,
+       trace_create_file("enabled_functions", TRACE_MODE_READ,
                        d_tracer, NULL, &ftrace_enabled_fops);
 
        ftrace_create_filter_files(&global_ops, d_tracer);
 
 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
-       trace_create_file("set_graph_function", 0644, d_tracer,
+       trace_create_file("set_graph_function", TRACE_MODE_WRITE, d_tracer,
                                    NULL,
                                    &ftrace_graph_fops);
-       trace_create_file("set_graph_notrace", 0644, d_tracer,
+       trace_create_file("set_graph_notrace", TRACE_MODE_WRITE, d_tracer,
                                    NULL,
                                    &ftrace_graph_notrace_fops);
 #endif /* CONFIG_FUNCTION_GRAPH_TRACER */
@@ -7494,10 +7495,10 @@ static const struct file_operations ftrace_no_pid_fops = {
 
 void ftrace_init_tracefs(struct trace_array *tr, struct dentry *d_tracer)
 {
-       trace_create_file("set_ftrace_pid", 0644, d_tracer,
+       trace_create_file("set_ftrace_pid", TRACE_MODE_WRITE, d_tracer,
                            tr, &ftrace_pid_fops);
-       trace_create_file("set_ftrace_notrace_pid", 0644, d_tracer,
-                           tr, &ftrace_no_pid_fops);
+       trace_create_file("set_ftrace_notrace_pid", TRACE_MODE_WRITE,
+                         d_tracer, tr, &ftrace_no_pid_fops);
 }
 
 void __init ftrace_init_tracefs_toplevel(struct trace_array *tr,
index bc677cd6422401889f77b7d60ba50fbb2ad1bd5a..5e452dd57af01700a25681e43f40d386ffbe085f 100644 (file)
@@ -1714,7 +1714,8 @@ static void trace_create_maxlat_file(struct trace_array *tr,
 {
        INIT_WORK(&tr->fsnotify_work, latency_fsnotify_workfn);
        init_irq_work(&tr->fsnotify_irqwork, latency_fsnotify_workfn_irq);
-       tr->d_max_latency = trace_create_file("tracing_max_latency", 0644,
+       tr->d_max_latency = trace_create_file("tracing_max_latency",
+                                             TRACE_MODE_WRITE,
                                              d_tracer, &tr->max_latency,
                                              &tracing_max_lat_fops);
 }
@@ -1748,8 +1749,8 @@ void latency_fsnotify(struct trace_array *tr)
        || defined(CONFIG_OSNOISE_TRACER)
 
 #define trace_create_maxlat_file(tr, d_tracer)                         \
-       trace_create_file("tracing_max_latency", 0644, d_tracer,        \
-                         &tr->max_latency, &tracing_max_lat_fops)
+       trace_create_file("tracing_max_latency", TRACE_MODE_WRITE,      \
+                         d_tracer, &tr->max_latency, &tracing_max_lat_fops)
 
 #else
 #define trace_create_maxlat_file(tr, d_tracer)  do { } while (0)
@@ -6077,7 +6078,7 @@ trace_insert_eval_map_file(struct module *mod, struct trace_eval_map **start,
 
 static void trace_create_eval_file(struct dentry *d_tracer)
 {
-       trace_create_file("eval_map", 0444, d_tracer,
+       trace_create_file("eval_map", TRACE_MODE_READ, d_tracer,
                          NULL, &tracing_eval_map_fops);
 }
 
@@ -8590,27 +8591,27 @@ tracing_init_tracefs_percpu(struct trace_array *tr, long cpu)
        }
 
        /* per cpu trace_pipe */
-       trace_create_cpu_file("trace_pipe", 0444, d_cpu,
+       trace_create_cpu_file("trace_pipe", TRACE_MODE_READ, d_cpu,
                                tr, cpu, &tracing_pipe_fops);
 
        /* per cpu trace */
-       trace_create_cpu_file("trace", 0644, d_cpu,
+       trace_create_cpu_file("trace", TRACE_MODE_WRITE, d_cpu,
                                tr, cpu, &tracing_fops);
 
-       trace_create_cpu_file("trace_pipe_raw", 0444, d_cpu,
+       trace_create_cpu_file("trace_pipe_raw", TRACE_MODE_READ, d_cpu,
                                tr, cpu, &tracing_buffers_fops);
 
-       trace_create_cpu_file("stats", 0444, d_cpu,
+       trace_create_cpu_file("stats", TRACE_MODE_READ, d_cpu,
                                tr, cpu, &tracing_stats_fops);
 
-       trace_create_cpu_file("buffer_size_kb", 0444, d_cpu,
+       trace_create_cpu_file("buffer_size_kb", TRACE_MODE_READ, d_cpu,
                                tr, cpu, &tracing_entries_fops);
 
 #ifdef CONFIG_TRACER_SNAPSHOT
-       trace_create_cpu_file("snapshot", 0644, d_cpu,
+       trace_create_cpu_file("snapshot", TRACE_MODE_WRITE, d_cpu,
                                tr, cpu, &snapshot_fops);
 
-       trace_create_cpu_file("snapshot_raw", 0444, d_cpu,
+       trace_create_cpu_file("snapshot_raw", TRACE_MODE_READ, d_cpu,
                                tr, cpu, &snapshot_raw_fops);
 #endif
 }
@@ -8816,8 +8817,8 @@ create_trace_option_file(struct trace_array *tr,
        topt->opt = opt;
        topt->tr = tr;
 
-       topt->entry = trace_create_file(opt->name, 0644, t_options, topt,
-                                   &trace_options_fops);
+       topt->entry = trace_create_file(opt->name, TRACE_MODE_WRITE,
+                                       t_options, topt, &trace_options_fops);
 
 }
 
@@ -8892,7 +8893,7 @@ create_trace_option_core_file(struct trace_array *tr,
        if (!t_options)
                return NULL;
 
-       return trace_create_file(option, 0644, t_options,
+       return trace_create_file(option, TRACE_MODE_WRITE, t_options,
                                 (void *)&tr->trace_flags_index[index],
                                 &trace_options_core_fops);
 }
@@ -9417,28 +9418,28 @@ init_tracer_tracefs(struct trace_array *tr, struct dentry *d_tracer)
        struct trace_event_file *file;
        int cpu;
 
-       trace_create_file("available_tracers", 0444, d_tracer,
+       trace_create_file("available_tracers", TRACE_MODE_READ, d_tracer,
                        tr, &show_traces_fops);
 
-       trace_create_file("current_tracer", 0644, d_tracer,
+       trace_create_file("current_tracer", TRACE_MODE_WRITE, d_tracer,
                        tr, &set_tracer_fops);
 
-       trace_create_file("tracing_cpumask", 0644, d_tracer,
+       trace_create_file("tracing_cpumask", TRACE_MODE_WRITE, d_tracer,
                          tr, &tracing_cpumask_fops);
 
-       trace_create_file("trace_options", 0644, d_tracer,
+       trace_create_file("trace_options", TRACE_MODE_WRITE, d_tracer,
                          tr, &tracing_iter_fops);
 
-       trace_create_file("trace", 0644, d_tracer,
+       trace_create_file("trace", TRACE_MODE_WRITE, d_tracer,
                          tr, &tracing_fops);
 
-       trace_create_file("trace_pipe", 0444, d_tracer,
+       trace_create_file("trace_pipe", TRACE_MODE_READ, d_tracer,
                          tr, &tracing_pipe_fops);
 
-       trace_create_file("buffer_size_kb", 0644, d_tracer,
+       trace_create_file("buffer_size_kb", TRACE_MODE_WRITE, d_tracer,
                          tr, &tracing_entries_fops);
 
-       trace_create_file("buffer_total_size_kb", 0444, d_tracer,
+       trace_create_file("buffer_total_size_kb", TRACE_MODE_READ, d_tracer,
                          tr, &tracing_total_entries_fops);
 
        trace_create_file("free_buffer", 0200, d_tracer,
@@ -9449,25 +9450,25 @@ init_tracer_tracefs(struct trace_array *tr, struct dentry *d_tracer)
 
        file = __find_event_file(tr, "ftrace", "print");
        if (file && file->dir)
-               trace_create_file("trigger", 0644, file->dir, file,
-                                 &event_trigger_fops);
+               trace_create_file("trigger", TRACE_MODE_WRITE, file->dir,
+                                 file, &event_trigger_fops);
        tr->trace_marker_file = file;
 
        trace_create_file("trace_marker_raw", 0220, d_tracer,
                          tr, &tracing_mark_raw_fops);
 
-       trace_create_file("trace_clock", 0644, d_tracer, tr,
+       trace_create_file("trace_clock", TRACE_MODE_WRITE, d_tracer, tr,
                          &trace_clock_fops);
 
-       trace_create_file("tracing_on", 0644, d_tracer,
+       trace_create_file("tracing_on", TRACE_MODE_WRITE, d_tracer,
                          tr, &rb_simple_fops);
 
-       trace_create_file("timestamp_mode", 0444, d_tracer, tr,
+       trace_create_file("timestamp_mode", TRACE_MODE_READ, d_tracer, tr,
                          &trace_time_stamp_mode_fops);
 
        tr->buffer_percent = 50;
 
-       trace_create_file("buffer_percent", 0444, d_tracer,
+       trace_create_file("buffer_percent", TRACE_MODE_READ, d_tracer,
                        tr, &buffer_percent_fops);
 
        create_trace_options_dir(tr);
@@ -9478,11 +9479,11 @@ init_tracer_tracefs(struct trace_array *tr, struct dentry *d_tracer)
                MEM_FAIL(1, "Could not allocate function filter files");
 
 #ifdef CONFIG_TRACER_SNAPSHOT
-       trace_create_file("snapshot", 0644, d_tracer,
+       trace_create_file("snapshot", TRACE_MODE_WRITE, d_tracer,
                          tr, &snapshot_fops);
 #endif
 
-       trace_create_file("error_log", 0644, d_tracer,
+       trace_create_file("error_log", TRACE_MODE_WRITE, d_tracer,
                          tr, &tracing_err_log_fops);
 
        for_each_tracing_cpu(cpu)
@@ -9675,19 +9676,19 @@ static __init int tracer_init_tracefs(void)
        init_tracer_tracefs(&global_trace, NULL);
        ftrace_init_tracefs_toplevel(&global_trace, NULL);
 
-       trace_create_file("tracing_thresh", 0644, NULL,
+       trace_create_file("tracing_thresh", TRACE_MODE_WRITE, NULL,
                        &global_trace, &tracing_thresh_fops);
 
-       trace_create_file("README", 0444, NULL,
+       trace_create_file("README", TRACE_MODE_READ, NULL,
                        NULL, &tracing_readme_fops);
 
-       trace_create_file("saved_cmdlines", 0444, NULL,
+       trace_create_file("saved_cmdlines", TRACE_MODE_READ, NULL,
                        NULL, &tracing_saved_cmdlines_fops);
 
-       trace_create_file("saved_cmdlines_size", 0644, NULL,
+       trace_create_file("saved_cmdlines_size", TRACE_MODE_WRITE, NULL,
                          NULL, &tracing_saved_cmdlines_size_fops);
 
-       trace_create_file("saved_tgids", 0444, NULL,
+       trace_create_file("saved_tgids", TRACE_MODE_READ, NULL,
                        NULL, &tracing_saved_tgids_fops);
 
        trace_eval_init();
@@ -9699,7 +9700,7 @@ static __init int tracer_init_tracefs(void)
 #endif
 
 #ifdef CONFIG_DYNAMIC_FTRACE
-       trace_create_file("dyn_ftrace_total_info", 0444, NULL,
+       trace_create_file("dyn_ftrace_total_info", TRACE_MODE_READ, NULL,
                        NULL, &tracing_dyn_info_fops);
 #endif
 
index b7c0f8e160fb4e97e8795ce6eb4f8c08252ae483..5c71d32b2860ac625b0c6b1e9a030bd045d8fd03 100644 (file)
@@ -27,6 +27,9 @@
 #include <asm/syscall.h>       /* some archs define it here */
 #endif
 
+#define TRACE_MODE_WRITE       0640
+#define TRACE_MODE_READ                0440
+
 enum trace_type {
        __TRACE_FIRST_TYPE = 0,
 
index 1110112e55bd7cee300db5488b580af1938d30c6..e34e8182ee4b5ecafe8f39b5ae0f779db6dc735d 100644 (file)
@@ -262,7 +262,7 @@ static __init int init_dynamic_event(void)
        if (ret)
                return 0;
 
-       entry = tracefs_create_file("dynamic_events", 0644, NULL,
+       entry = tracefs_create_file("dynamic_events", TRACE_MODE_WRITE, NULL,
                                    NULL, &dynamic_events_ops);
 
        /* Event list interface */
index 830b3b9940f4c17c84d3a2531dcb8183de8331bd..bb1123ef2a021092ea48e39e5a090964adb0dceb 100644 (file)
@@ -2312,7 +2312,8 @@ event_subsystem_dir(struct trace_array *tr, const char *name,
        /* the ftrace system is special, do not create enable or filter files */
        if (strcmp(name, "ftrace") != 0) {
 
-               entry = tracefs_create_file("filter", 0644, dir->entry, dir,
+               entry = tracefs_create_file("filter", TRACE_MODE_WRITE,
+                                           dir->entry, dir,
                                            &ftrace_subsystem_filter_fops);
                if (!entry) {
                        kfree(system->filter);
@@ -2320,7 +2321,7 @@ event_subsystem_dir(struct trace_array *tr, const char *name,
                        pr_warn("Could not create tracefs '%s/filter' entry\n", name);
                }
 
-               trace_create_file("enable", 0644, dir->entry, dir,
+               trace_create_file("enable", TRACE_MODE_WRITE, dir->entry, dir,
                                  &ftrace_system_enable_fops);
        }
 
@@ -2402,12 +2403,12 @@ event_create_dir(struct dentry *parent, struct trace_event_file *file)
        }
 
        if (call->class->reg && !(call->flags & TRACE_EVENT_FL_IGNORE_ENABLE))
-               trace_create_file("enable", 0644, file->dir, file,
+               trace_create_file("enable", TRACE_MODE_WRITE, file->dir, file,
                                  &ftrace_enable_fops);
 
 #ifdef CONFIG_PERF_EVENTS
        if (call->event.type && call->class->reg)
-               trace_create_file("id", 0444, file->dir,
+               trace_create_file("id", TRACE_MODE_READ, file->dir,
                                  (void *)(long)call->event.type,
                                  &ftrace_event_id_fops);
 #endif
@@ -2423,22 +2424,22 @@ event_create_dir(struct dentry *parent, struct trace_event_file *file)
         * triggers or filters.
         */
        if (!(call->flags & TRACE_EVENT_FL_IGNORE_ENABLE)) {
-               trace_create_file("filter", 0644, file->dir, file,
-                                 &ftrace_event_filter_fops);
+               trace_create_file("filter", TRACE_MODE_WRITE, file->dir,
+                                 file, &ftrace_event_filter_fops);
 
-               trace_create_file("trigger", 0644, file->dir, file,
-                                 &event_trigger_fops);
+               trace_create_file("trigger", TRACE_MODE_WRITE, file->dir,
+                                 file, &event_trigger_fops);
        }
 
 #ifdef CONFIG_HIST_TRIGGERS
-       trace_create_file("hist", 0444, file->dir, file,
+       trace_create_file("hist", TRACE_MODE_READ, file->dir, file,
                          &event_hist_fops);
 #endif
 #ifdef CONFIG_HIST_TRIGGERS_DEBUG
-       trace_create_file("hist_debug", 0444, file->dir, file,
+       trace_create_file("hist_debug", TRACE_MODE_READ, file->dir, file,
                          &event_hist_debug_fops);
 #endif
-       trace_create_file("format", 0444, file->dir, call,
+       trace_create_file("format", TRACE_MODE_READ, file->dir, call,
                          &ftrace_event_format_fops);
 
 #ifdef CONFIG_TRACE_EVENT_INJECT
@@ -3433,7 +3434,7 @@ create_event_toplevel_files(struct dentry *parent, struct trace_array *tr)
        struct dentry *d_events;
        struct dentry *entry;
 
-       entry = tracefs_create_file("set_event", 0644, parent,
+       entry = tracefs_create_file("set_event", TRACE_MODE_WRITE, parent,
                                    tr, &ftrace_set_event_fops);
        if (!entry) {
                pr_warn("Could not create tracefs 'set_event' entry\n");
@@ -3446,7 +3447,7 @@ create_event_toplevel_files(struct dentry *parent, struct trace_array *tr)
                return -ENOMEM;
        }
 
-       entry = trace_create_file("enable", 0644, d_events,
+       entry = trace_create_file("enable", TRACE_MODE_WRITE, d_events,
                                  tr, &ftrace_tr_enable_fops);
        if (!entry) {
                pr_warn("Could not create tracefs 'enable' entry\n");
@@ -3455,24 +3456,25 @@ create_event_toplevel_files(struct dentry *parent, struct trace_array *tr)
 
        /* There are not as crucial, just warn if they are not created */
 
-       entry = tracefs_create_file("set_event_pid", 0644, parent,
+       entry = tracefs_create_file("set_event_pid", TRACE_MODE_WRITE, parent,
                                    tr, &ftrace_set_event_pid_fops);
        if (!entry)
                pr_warn("Could not create tracefs 'set_event_pid' entry\n");
 
-       entry = tracefs_create_file("set_event_notrace_pid", 0644, parent,
-                                   tr, &ftrace_set_event_notrace_pid_fops);
+       entry = tracefs_create_file("set_event_notrace_pid",
+                                   TRACE_MODE_WRITE, parent, tr,
+                                   &ftrace_set_event_notrace_pid_fops);
        if (!entry)
                pr_warn("Could not create tracefs 'set_event_notrace_pid' entry\n");
 
        /* ring buffer internal formats */
-       entry = trace_create_file("header_page", 0444, d_events,
+       entry = trace_create_file("header_page", TRACE_MODE_READ, d_events,
                                  ring_buffer_print_page_header,
                                  &ftrace_show_header_fops);
        if (!entry)
                pr_warn("Could not create tracefs 'header_page' entry\n");
 
-       entry = trace_create_file("header_event", 0444, d_events,
+       entry = trace_create_file("header_event", TRACE_MODE_READ, d_events,
                                  ring_buffer_print_entry_header,
                                  &ftrace_show_header_fops);
        if (!entry)
@@ -3689,8 +3691,8 @@ __init int event_trace_init(void)
        if (!tr)
                return -ENODEV;
 
-       entry = tracefs_create_file("available_events", 0444, NULL,
-                                   tr, &ftrace_avail_fops);
+       entry = tracefs_create_file("available_events", TRACE_MODE_READ,
+                                   NULL, tr, &ftrace_avail_fops);
        if (!entry)
                pr_warn("Could not create tracefs 'available_events' entry\n");
 
index d54094b7a9d75e2ba6e08bac96093cc57911cfd0..22db3ce95e74f2fffa774656d43204692605b0ae 100644 (file)
@@ -2227,8 +2227,8 @@ static __init int trace_events_synth_init(void)
        if (err)
                goto err;
 
-       entry = tracefs_create_file("synthetic_events", 0644, NULL,
-                                   NULL, &synth_events_fops);
+       entry = tracefs_create_file("synthetic_events", TRACE_MODE_WRITE,
+                                   NULL, NULL, &synth_events_fops);
        if (!entry) {
                err = -ENODEV;
                goto err;
index 0de6837722da56e2c1fff4a6ba82edd6a20ced59..6b5ff3ba4251f5f05e1a702284cd21c6a754ca7a 100644 (file)
@@ -1340,7 +1340,7 @@ static __init int init_graph_tracefs(void)
        if (ret)
                return 0;
 
-       trace_create_file("max_graph_depth", 0644, NULL,
+       trace_create_file("max_graph_depth", TRACE_MODE_WRITE, NULL,
                          NULL, &graph_depth_fops);
 
        return 0;
index 1b83d75eb103b7734b4cd3ba48550b3280d67510..d0a730d99a33144621507e71918126952c304909 100644 (file)
@@ -782,21 +782,21 @@ static int init_tracefs(void)
        if (!top_dir)
                return -ENOMEM;
 
-       hwlat_sample_window = tracefs_create_file("window", 0640,
+       hwlat_sample_window = tracefs_create_file("window", TRACE_MODE_WRITE,
                                                  top_dir,
                                                  &hwlat_window,
                                                  &trace_min_max_fops);
        if (!hwlat_sample_window)
                goto err;
 
-       hwlat_sample_width = tracefs_create_file("width", 0644,
+       hwlat_sample_width = tracefs_create_file("width", TRACE_MODE_WRITE,
                                                 top_dir,
                                                 &hwlat_width,
                                                 &trace_min_max_fops);
        if (!hwlat_sample_width)
                goto err;
 
-       hwlat_thread_mode = trace_create_file("mode", 0644,
+       hwlat_thread_mode = trace_create_file("mode", TRACE_MODE_WRITE,
                                              top_dir,
                                              NULL,
                                              &thread_mode_fops);
index 3a64ba4bbad6f86c15a8c63da8cb00dd9d944e0d..92caef33b68c22eecd14809cee8eb8b9311468c0 100644 (file)
@@ -1925,16 +1925,16 @@ static __init int init_kprobe_trace(void)
        if (ret)
                return 0;
 
-       entry = tracefs_create_file("kprobe_events", 0644, NULL,
-                                   NULL, &kprobe_events_ops);
+       entry = tracefs_create_file("kprobe_events", TRACE_MODE_WRITE,
+                                   NULL, NULL, &kprobe_events_ops);
 
        /* Event list interface */
        if (!entry)
                pr_warn("Could not create tracefs 'kprobe_events' entry\n");
 
        /* Profile interface */
-       entry = tracefs_create_file("kprobe_profile", 0444, NULL,
-                                   NULL, &kprobe_profile_ops);
+       entry = tracefs_create_file("kprobe_profile", TRACE_MODE_READ,
+                                   NULL, NULL, &kprobe_profile_ops);
 
        if (!entry)
                pr_warn("Could not create tracefs 'kprobe_profile' entry\n");
index ce053619f289e9e17c46a3afa8785f87cd8f834c..c4f14fb98aaac5edf4a2a853eeae14b57a6ff39e 100644 (file)
@@ -1856,38 +1856,38 @@ static int init_tracefs(void)
        if (!top_dir)
                return 0;
 
-       tmp = tracefs_create_file("period_us", 0640, top_dir,
+       tmp = tracefs_create_file("period_us", TRACE_MODE_WRITE, top_dir,
                                  &osnoise_period, &trace_min_max_fops);
        if (!tmp)
                goto err;
 
-       tmp = tracefs_create_file("runtime_us", 0644, top_dir,
+       tmp = tracefs_create_file("runtime_us", TRACE_MODE_WRITE, top_dir,
                                  &osnoise_runtime, &trace_min_max_fops);
        if (!tmp)
                goto err;
 
-       tmp = tracefs_create_file("stop_tracing_us", 0640, top_dir,
+       tmp = tracefs_create_file("stop_tracing_us", TRACE_MODE_WRITE, top_dir,
                                  &osnoise_stop_tracing_in, &trace_min_max_fops);
        if (!tmp)
                goto err;
 
-       tmp = tracefs_create_file("stop_tracing_total_us", 0640, top_dir,
+       tmp = tracefs_create_file("stop_tracing_total_us", TRACE_MODE_WRITE, top_dir,
                                  &osnoise_stop_tracing_total, &trace_min_max_fops);
        if (!tmp)
                goto err;
 
-       tmp = trace_create_file("cpus", 0644, top_dir, NULL, &cpus_fops);
+       tmp = trace_create_file("cpus", TRACE_MODE_WRITE, top_dir, NULL, &cpus_fops);
        if (!tmp)
                goto err;
 #ifdef CONFIG_TIMERLAT_TRACER
 #ifdef CONFIG_STACKTRACE
-       tmp = tracefs_create_file("print_stack", 0640, top_dir,
+       tmp = tracefs_create_file("print_stack", TRACE_MODE_WRITE, top_dir,
                                  &osnoise_print_stack, &trace_min_max_fops);
        if (!tmp)
                goto err;
 #endif
 
-       tmp = tracefs_create_file("timerlat_period_us", 0640, top_dir,
+       tmp = tracefs_create_file("timerlat_period_us", TRACE_MODE_WRITE, top_dir,
                                  &timerlat_period, &trace_min_max_fops);
        if (!tmp)
                goto err;
index 4b320fe7df704178da5579c8c2f8162b08c53469..29f6e95439b67c1949826f7ea9f1137665f49800 100644 (file)
@@ -384,7 +384,7 @@ static __init int init_trace_printk_function_export(void)
        if (ret)
                return 0;
 
-       trace_create_file("printk_formats", 0444, NULL,
+       trace_create_file("printk_formats", TRACE_MODE_READ, NULL,
                                    NULL, &ftrace_formats_fops);
 
        return 0;
index b2edac1fe156ed1ab2e7dcfe14a451faee63ef23..4d4b78c8ca257b0b8beaa3b2cd41b4fe8512567c 100644 (file)
@@ -226,8 +226,8 @@ __init static int create_recursed_functions(void)
 {
        struct dentry *dentry;
 
-       dentry = trace_create_file("recursed_functions", 0644, NULL, NULL,
-                                  &recursed_functions_fops);
+       dentry = trace_create_file("recursed_functions", TRACE_MODE_WRITE,
+                                  NULL, NULL, &recursed_functions_fops);
        if (!dentry)
                pr_warn("WARNING: Failed to create recursed_functions\n");
        return 0;
index 63c285042051622029cbd01e9191f0dccbc5ea83..5a48dba912eaeb8bf8f9061b6120fdb566816e59 100644 (file)
@@ -559,14 +559,14 @@ static __init int stack_trace_init(void)
        if (ret)
                return 0;
 
-       trace_create_file("stack_max_size", 0644, NULL,
+       trace_create_file("stack_max_size", TRACE_MODE_WRITE, NULL,
                        &stack_trace_max_size, &stack_max_size_fops);
 
-       trace_create_file("stack_trace", 0444, NULL,
+       trace_create_file("stack_trace", TRACE_MODE_READ, NULL,
                        NULL, &stack_trace_fops);
 
 #ifdef CONFIG_DYNAMIC_FTRACE
-       trace_create_file("stack_trace_filter", 0644, NULL,
+       trace_create_file("stack_trace_filter", TRACE_MODE_WRITE, NULL,
                          &trace_ops, &stack_trace_filter_fops);
 #endif
 
index 8d141c3825a945ea210dce3f7e74c2c7e90dc60f..bb247beec447042cd010b3ea0b3db5df08f32e0c 100644 (file)
@@ -297,9 +297,9 @@ static int init_stat_file(struct stat_session *session)
        if (!stat_dir && (ret = tracing_stat_init()))
                return ret;
 
-       session->file = tracefs_create_file(session->ts->name, 0644,
-                                           stat_dir,
-                                           session, &tracing_stat_fops);
+       session->file = tracefs_create_file(session->ts->name, TRACE_MODE_WRITE,
+                                           stat_dir, session,
+                                           &tracing_stat_fops);
        if (!session->file)
                return -ENOMEM;
        return 0;
index 225ce569bf8f892a305cc4b2e27b6702c17b639e..0a5c0db3137ee9f7c04c464f9b5d9a45dd64aa96 100644 (file)
@@ -1655,10 +1655,10 @@ static __init int init_uprobe_trace(void)
        if (ret)
                return 0;
 
-       trace_create_file("uprobe_events", 0644, NULL,
+       trace_create_file("uprobe_events", TRACE_MODE_WRITE, NULL,
                                    NULL, &uprobe_events_ops);
        /* Profile interface */
-       trace_create_file("uprobe_profile", 0444, NULL,
+       trace_create_file("uprobe_profile", TRACE_MODE_READ, NULL,
                                    NULL, &uprobe_profile_ops);
        return 0;
 }