Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

tracing: Disable "other" permission bits in the tracefs files

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>

+103 -96
+12 -11
kernel/trace/ftrace.c
··· 988 988 } 989 989 } 990 990 991 - entry = tracefs_create_file("function_profile_enabled", 0644, 992 - d_tracer, NULL, &ftrace_profile_fops); 991 + entry = tracefs_create_file("function_profile_enabled", 992 + TRACE_MODE_WRITE, d_tracer, NULL, 993 + &ftrace_profile_fops); 993 994 if (!entry) 994 995 pr_warn("Could not create tracefs 'function_profile_enabled' entry\n"); 995 996 } ··· 6110 6109 struct dentry *parent) 6111 6110 { 6112 6111 6113 - trace_create_file("set_ftrace_filter", 0644, parent, 6112 + trace_create_file("set_ftrace_filter", TRACE_MODE_WRITE, parent, 6114 6113 ops, &ftrace_filter_fops); 6115 6114 6116 - trace_create_file("set_ftrace_notrace", 0644, parent, 6115 + trace_create_file("set_ftrace_notrace", TRACE_MODE_WRITE, parent, 6117 6116 ops, &ftrace_notrace_fops); 6118 6117 } 6119 6118 ··· 6140 6139 static __init int ftrace_init_dyn_tracefs(struct dentry *d_tracer) 6141 6140 { 6142 6141 6143 - trace_create_file("available_filter_functions", 0444, 6142 + trace_create_file("available_filter_functions", TRACE_MODE_READ, 6144 6143 d_tracer, NULL, &ftrace_avail_fops); 6145 6144 6146 - trace_create_file("enabled_functions", 0444, 6145 + trace_create_file("enabled_functions", TRACE_MODE_READ, 6147 6146 d_tracer, NULL, &ftrace_enabled_fops); 6148 6147 6149 6148 ftrace_create_filter_files(&global_ops, d_tracer); 6150 6149 6151 6150 #ifdef CONFIG_FUNCTION_GRAPH_TRACER 6152 - trace_create_file("set_graph_function", 0644, d_tracer, 6151 + trace_create_file("set_graph_function", TRACE_MODE_WRITE, d_tracer, 6153 6152 NULL, 6154 6153 &ftrace_graph_fops); 6155 - trace_create_file("set_graph_notrace", 0644, d_tracer, 6154 + trace_create_file("set_graph_notrace", TRACE_MODE_WRITE, d_tracer, 6156 6155 NULL, 6157 6156 &ftrace_graph_notrace_fops); 6158 6157 #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ ··· 7495 7494 7496 7495 void ftrace_init_tracefs(struct trace_array *tr, struct dentry *d_tracer) 7497 7496 { 7498 - trace_create_file("set_ftrace_pid", 0644, d_tracer, 7497 + trace_create_file("set_ftrace_pid", TRACE_MODE_WRITE, d_tracer, 7499 7498 tr, &ftrace_pid_fops); 7500 - trace_create_file("set_ftrace_notrace_pid", 0644, d_tracer, 7501 - tr, &ftrace_no_pid_fops); 7499 + trace_create_file("set_ftrace_notrace_pid", TRACE_MODE_WRITE, 7500 + d_tracer, tr, &ftrace_no_pid_fops); 7502 7501 } 7503 7502 7504 7503 void __init ftrace_init_tracefs_toplevel(struct trace_array *tr,
+37 -36
kernel/trace/trace.c
··· 1690 1690 { 1691 1691 INIT_WORK(&tr->fsnotify_work, latency_fsnotify_workfn); 1692 1692 init_irq_work(&tr->fsnotify_irqwork, latency_fsnotify_workfn_irq); 1693 - tr->d_max_latency = trace_create_file("tracing_max_latency", 0644, 1693 + tr->d_max_latency = trace_create_file("tracing_max_latency", 1694 + TRACE_MODE_WRITE, 1694 1695 d_tracer, &tr->max_latency, 1695 1696 &tracing_max_lat_fops); 1696 1697 } ··· 1728 1727 #else 1729 1728 1730 1729 #define trace_create_maxlat_file(tr, d_tracer) \ 1731 - trace_create_file("tracing_max_latency", 0644, d_tracer, \ 1732 - &tr->max_latency, &tracing_max_lat_fops) 1730 + trace_create_file("tracing_max_latency", TRACE_MODE_WRITE, \ 1731 + d_tracer, &tr->max_latency, &tracing_max_lat_fops) 1733 1732 1734 1733 #endif 1735 1734 ··· 6055 6054 6056 6055 static void trace_create_eval_file(struct dentry *d_tracer) 6057 6056 { 6058 - trace_create_file("eval_map", 0444, d_tracer, 6057 + trace_create_file("eval_map", TRACE_MODE_READ, d_tracer, 6059 6058 NULL, &tracing_eval_map_fops); 6060 6059 } 6061 6060 ··· 8568 8567 } 8569 8568 8570 8569 /* per cpu trace_pipe */ 8571 - trace_create_cpu_file("trace_pipe", 0444, d_cpu, 8570 + trace_create_cpu_file("trace_pipe", TRACE_MODE_READ, d_cpu, 8572 8571 tr, cpu, &tracing_pipe_fops); 8573 8572 8574 8573 /* per cpu trace */ 8575 - trace_create_cpu_file("trace", 0644, d_cpu, 8574 + trace_create_cpu_file("trace", TRACE_MODE_WRITE, d_cpu, 8576 8575 tr, cpu, &tracing_fops); 8577 8576 8578 - trace_create_cpu_file("trace_pipe_raw", 0444, d_cpu, 8577 + trace_create_cpu_file("trace_pipe_raw", TRACE_MODE_READ, d_cpu, 8579 8578 tr, cpu, &tracing_buffers_fops); 8580 8579 8581 - trace_create_cpu_file("stats", 0444, d_cpu, 8580 + trace_create_cpu_file("stats", TRACE_MODE_READ, d_cpu, 8582 8581 tr, cpu, &tracing_stats_fops); 8583 8582 8584 - trace_create_cpu_file("buffer_size_kb", 0444, d_cpu, 8583 + trace_create_cpu_file("buffer_size_kb", TRACE_MODE_READ, d_cpu, 8585 8584 tr, cpu, &tracing_entries_fops); 8586 8585 8587 8586 #ifdef CONFIG_TRACER_SNAPSHOT 8588 - trace_create_cpu_file("snapshot", 0644, d_cpu, 8587 + trace_create_cpu_file("snapshot", TRACE_MODE_WRITE, d_cpu, 8589 8588 tr, cpu, &snapshot_fops); 8590 8589 8591 - trace_create_cpu_file("snapshot_raw", 0444, d_cpu, 8590 + trace_create_cpu_file("snapshot_raw", TRACE_MODE_READ, d_cpu, 8592 8591 tr, cpu, &snapshot_raw_fops); 8593 8592 #endif 8594 8593 } ··· 8794 8793 topt->opt = opt; 8795 8794 topt->tr = tr; 8796 8795 8797 - topt->entry = trace_create_file(opt->name, 0644, t_options, topt, 8798 - &trace_options_fops); 8796 + topt->entry = trace_create_file(opt->name, TRACE_MODE_WRITE, 8797 + t_options, topt, &trace_options_fops); 8799 8798 8800 8799 } 8801 8800 ··· 8870 8869 if (!t_options) 8871 8870 return NULL; 8872 8871 8873 - return trace_create_file(option, 0644, t_options, 8872 + return trace_create_file(option, TRACE_MODE_WRITE, t_options, 8874 8873 (void *)&tr->trace_flags_index[index], 8875 8874 &trace_options_core_fops); 8876 8875 } ··· 9395 9394 struct trace_event_file *file; 9396 9395 int cpu; 9397 9396 9398 - trace_create_file("available_tracers", 0444, d_tracer, 9397 + trace_create_file("available_tracers", TRACE_MODE_READ, d_tracer, 9399 9398 tr, &show_traces_fops); 9400 9399 9401 - trace_create_file("current_tracer", 0644, d_tracer, 9400 + trace_create_file("current_tracer", TRACE_MODE_WRITE, d_tracer, 9402 9401 tr, &set_tracer_fops); 9403 9402 9404 - trace_create_file("tracing_cpumask", 0644, d_tracer, 9403 + trace_create_file("tracing_cpumask", TRACE_MODE_WRITE, d_tracer, 9405 9404 tr, &tracing_cpumask_fops); 9406 9405 9407 - trace_create_file("trace_options", 0644, d_tracer, 9406 + trace_create_file("trace_options", TRACE_MODE_WRITE, d_tracer, 9408 9407 tr, &tracing_iter_fops); 9409 9408 9410 - trace_create_file("trace", 0644, d_tracer, 9409 + trace_create_file("trace", TRACE_MODE_WRITE, d_tracer, 9411 9410 tr, &tracing_fops); 9412 9411 9413 - trace_create_file("trace_pipe", 0444, d_tracer, 9412 + trace_create_file("trace_pipe", TRACE_MODE_READ, d_tracer, 9414 9413 tr, &tracing_pipe_fops); 9415 9414 9416 - trace_create_file("buffer_size_kb", 0644, d_tracer, 9415 + trace_create_file("buffer_size_kb", TRACE_MODE_WRITE, d_tracer, 9417 9416 tr, &tracing_entries_fops); 9418 9417 9419 - trace_create_file("buffer_total_size_kb", 0444, d_tracer, 9418 + trace_create_file("buffer_total_size_kb", TRACE_MODE_READ, d_tracer, 9420 9419 tr, &tracing_total_entries_fops); 9421 9420 9422 9421 trace_create_file("free_buffer", 0200, d_tracer, ··· 9427 9426 9428 9427 file = __find_event_file(tr, "ftrace", "print"); 9429 9428 if (file && file->dir) 9430 - trace_create_file("trigger", 0644, file->dir, file, 9431 - &event_trigger_fops); 9429 + trace_create_file("trigger", TRACE_MODE_WRITE, file->dir, 9430 + file, &event_trigger_fops); 9432 9431 tr->trace_marker_file = file; 9433 9432 9434 9433 trace_create_file("trace_marker_raw", 0220, d_tracer, 9435 9434 tr, &tracing_mark_raw_fops); 9436 9435 9437 - trace_create_file("trace_clock", 0644, d_tracer, tr, 9436 + trace_create_file("trace_clock", TRACE_MODE_WRITE, d_tracer, tr, 9438 9437 &trace_clock_fops); 9439 9438 9440 - trace_create_file("tracing_on", 0644, d_tracer, 9439 + trace_create_file("tracing_on", TRACE_MODE_WRITE, d_tracer, 9441 9440 tr, &rb_simple_fops); 9442 9441 9443 - trace_create_file("timestamp_mode", 0444, d_tracer, tr, 9442 + trace_create_file("timestamp_mode", TRACE_MODE_READ, d_tracer, tr, 9444 9443 &trace_time_stamp_mode_fops); 9445 9444 9446 9445 tr->buffer_percent = 50; 9447 9446 9448 - trace_create_file("buffer_percent", 0444, d_tracer, 9447 + trace_create_file("buffer_percent", TRACE_MODE_READ, d_tracer, 9449 9448 tr, &buffer_percent_fops); 9450 9449 9451 9450 create_trace_options_dir(tr); ··· 9458 9457 MEM_FAIL(1, "Could not allocate function filter files"); 9459 9458 9460 9459 #ifdef CONFIG_TRACER_SNAPSHOT 9461 - trace_create_file("snapshot", 0644, d_tracer, 9460 + trace_create_file("snapshot", TRACE_MODE_WRITE, d_tracer, 9462 9461 tr, &snapshot_fops); 9463 9462 #endif 9464 9463 9465 - trace_create_file("error_log", 0644, d_tracer, 9464 + trace_create_file("error_log", TRACE_MODE_WRITE, d_tracer, 9466 9465 tr, &tracing_err_log_fops); 9467 9466 9468 9467 for_each_tracing_cpu(cpu) ··· 9655 9654 init_tracer_tracefs(&global_trace, NULL); 9656 9655 ftrace_init_tracefs_toplevel(&global_trace, NULL); 9657 9656 9658 - trace_create_file("tracing_thresh", 0644, NULL, 9657 + trace_create_file("tracing_thresh", TRACE_MODE_WRITE, NULL, 9659 9658 &global_trace, &tracing_thresh_fops); 9660 9659 9661 - trace_create_file("README", 0444, NULL, 9660 + trace_create_file("README", TRACE_MODE_READ, NULL, 9662 9661 NULL, &tracing_readme_fops); 9663 9662 9664 - trace_create_file("saved_cmdlines", 0444, NULL, 9663 + trace_create_file("saved_cmdlines", TRACE_MODE_READ, NULL, 9665 9664 NULL, &tracing_saved_cmdlines_fops); 9666 9665 9667 - trace_create_file("saved_cmdlines_size", 0644, NULL, 9666 + trace_create_file("saved_cmdlines_size", TRACE_MODE_WRITE, NULL, 9668 9667 NULL, &tracing_saved_cmdlines_size_fops); 9669 9668 9670 - trace_create_file("saved_tgids", 0444, NULL, 9669 + trace_create_file("saved_tgids", TRACE_MODE_READ, NULL, 9671 9670 NULL, &tracing_saved_tgids_fops); 9672 9671 9673 9672 trace_eval_init(); ··· 9679 9678 #endif 9680 9679 9681 9680 #ifdef CONFIG_DYNAMIC_FTRACE 9682 - trace_create_file("dyn_ftrace_total_info", 0444, NULL, 9681 + trace_create_file("dyn_ftrace_total_info", TRACE_MODE_READ, NULL, 9683 9682 NULL, &tracing_dyn_info_fops); 9684 9683 #endif 9685 9684
+3
kernel/trace/trace.h
··· 29 29 #include <asm/syscall.h> /* some archs define it here */ 30 30 #endif 31 31 32 + #define TRACE_MODE_WRITE 0640 33 + #define TRACE_MODE_READ 0440 34 + 32 35 enum trace_type { 33 36 __TRACE_FIRST_TYPE = 0, 34 37
+1 -1
kernel/trace/trace_dynevent.c
··· 262 262 if (ret) 263 263 return 0; 264 264 265 - entry = tracefs_create_file("dynamic_events", 0644, NULL, 265 + entry = tracefs_create_file("dynamic_events", TRACE_MODE_WRITE, NULL, 266 266 NULL, &dynamic_events_ops); 267 267 268 268 /* Event list interface */
+22 -20
kernel/trace/trace_events.c
··· 2312 2312 /* the ftrace system is special, do not create enable or filter files */ 2313 2313 if (strcmp(name, "ftrace") != 0) { 2314 2314 2315 - entry = tracefs_create_file("filter", 0644, dir->entry, dir, 2315 + entry = tracefs_create_file("filter", TRACE_MODE_WRITE, 2316 + dir->entry, dir, 2316 2317 &ftrace_subsystem_filter_fops); 2317 2318 if (!entry) { 2318 2319 kfree(system->filter); ··· 2321 2320 pr_warn("Could not create tracefs '%s/filter' entry\n", name); 2322 2321 } 2323 2322 2324 - trace_create_file("enable", 0644, dir->entry, dir, 2323 + trace_create_file("enable", TRACE_MODE_WRITE, dir->entry, dir, 2325 2324 &ftrace_system_enable_fops); 2326 2325 } 2327 2326 ··· 2403 2402 } 2404 2403 2405 2404 if (call->class->reg && !(call->flags & TRACE_EVENT_FL_IGNORE_ENABLE)) 2406 - trace_create_file("enable", 0644, file->dir, file, 2405 + trace_create_file("enable", TRACE_MODE_WRITE, file->dir, file, 2407 2406 &ftrace_enable_fops); 2408 2407 2409 2408 #ifdef CONFIG_PERF_EVENTS 2410 2409 if (call->event.type && call->class->reg) 2411 - trace_create_file("id", 0444, file->dir, 2410 + trace_create_file("id", TRACE_MODE_READ, file->dir, 2412 2411 (void *)(long)call->event.type, 2413 2412 &ftrace_event_id_fops); 2414 2413 #endif ··· 2424 2423 * triggers or filters. 2425 2424 */ 2426 2425 if (!(call->flags & TRACE_EVENT_FL_IGNORE_ENABLE)) { 2427 - trace_create_file("filter", 0644, file->dir, file, 2428 - &ftrace_event_filter_fops); 2426 + trace_create_file("filter", TRACE_MODE_WRITE, file->dir, 2427 + file, &ftrace_event_filter_fops); 2429 2428 2430 - trace_create_file("trigger", 0644, file->dir, file, 2431 - &event_trigger_fops); 2429 + trace_create_file("trigger", TRACE_MODE_WRITE, file->dir, 2430 + file, &event_trigger_fops); 2432 2431 } 2433 2432 2434 2433 #ifdef CONFIG_HIST_TRIGGERS 2435 - trace_create_file("hist", 0444, file->dir, file, 2434 + trace_create_file("hist", TRACE_MODE_READ, file->dir, file, 2436 2435 &event_hist_fops); 2437 2436 #endif 2438 2437 #ifdef CONFIG_HIST_TRIGGERS_DEBUG 2439 - trace_create_file("hist_debug", 0444, file->dir, file, 2438 + trace_create_file("hist_debug", TRACE_MODE_READ, file->dir, file, 2440 2439 &event_hist_debug_fops); 2441 2440 #endif 2442 - trace_create_file("format", 0444, file->dir, call, 2441 + trace_create_file("format", TRACE_MODE_READ, file->dir, call, 2443 2442 &ftrace_event_format_fops); 2444 2443 2445 2444 #ifdef CONFIG_TRACE_EVENT_INJECT ··· 3434 3433 struct dentry *d_events; 3435 3434 struct dentry *entry; 3436 3435 3437 - entry = tracefs_create_file("set_event", 0644, parent, 3436 + entry = tracefs_create_file("set_event", TRACE_MODE_WRITE, parent, 3438 3437 tr, &ftrace_set_event_fops); 3439 3438 if (!entry) { 3440 3439 pr_warn("Could not create tracefs 'set_event' entry\n"); ··· 3447 3446 return -ENOMEM; 3448 3447 } 3449 3448 3450 - entry = trace_create_file("enable", 0644, d_events, 3449 + entry = trace_create_file("enable", TRACE_MODE_WRITE, d_events, 3451 3450 tr, &ftrace_tr_enable_fops); 3452 3451 if (!entry) { 3453 3452 pr_warn("Could not create tracefs 'enable' entry\n"); ··· 3456 3455 3457 3456 /* There are not as crucial, just warn if they are not created */ 3458 3457 3459 - entry = tracefs_create_file("set_event_pid", 0644, parent, 3458 + entry = tracefs_create_file("set_event_pid", TRACE_MODE_WRITE, parent, 3460 3459 tr, &ftrace_set_event_pid_fops); 3461 3460 if (!entry) 3462 3461 pr_warn("Could not create tracefs 'set_event_pid' entry\n"); 3463 3462 3464 - entry = tracefs_create_file("set_event_notrace_pid", 0644, parent, 3465 - tr, &ftrace_set_event_notrace_pid_fops); 3463 + entry = tracefs_create_file("set_event_notrace_pid", 3464 + TRACE_MODE_WRITE, parent, tr, 3465 + &ftrace_set_event_notrace_pid_fops); 3466 3466 if (!entry) 3467 3467 pr_warn("Could not create tracefs 'set_event_notrace_pid' entry\n"); 3468 3468 3469 3469 /* ring buffer internal formats */ 3470 - entry = trace_create_file("header_page", 0444, d_events, 3470 + entry = trace_create_file("header_page", TRACE_MODE_READ, d_events, 3471 3471 ring_buffer_print_page_header, 3472 3472 &ftrace_show_header_fops); 3473 3473 if (!entry) 3474 3474 pr_warn("Could not create tracefs 'header_page' entry\n"); 3475 3475 3476 - entry = trace_create_file("header_event", 0444, d_events, 3476 + entry = trace_create_file("header_event", TRACE_MODE_READ, d_events, 3477 3477 ring_buffer_print_entry_header, 3478 3478 &ftrace_show_header_fops); 3479 3479 if (!entry) ··· 3691 3689 if (!tr) 3692 3690 return -ENODEV; 3693 3691 3694 - entry = tracefs_create_file("available_events", 0444, NULL, 3695 - tr, &ftrace_avail_fops); 3692 + entry = tracefs_create_file("available_events", TRACE_MODE_READ, 3693 + NULL, tr, &ftrace_avail_fops); 3696 3694 if (!entry) 3697 3695 pr_warn("Could not create tracefs 'available_events' entry\n"); 3698 3696
+2 -2
kernel/trace/trace_events_synth.c
··· 2227 2227 if (err) 2228 2228 goto err; 2229 2229 2230 - entry = tracefs_create_file("synthetic_events", 0644, NULL, 2231 - NULL, &synth_events_fops); 2230 + entry = tracefs_create_file("synthetic_events", TRACE_MODE_WRITE, 2231 + NULL, NULL, &synth_events_fops); 2232 2232 if (!entry) { 2233 2233 err = -ENODEV; 2234 2234 goto err;
+1 -1
kernel/trace/trace_functions_graph.c
··· 1340 1340 if (ret) 1341 1341 return 0; 1342 1342 1343 - trace_create_file("max_graph_depth", 0644, NULL, 1343 + trace_create_file("max_graph_depth", TRACE_MODE_WRITE, NULL, 1344 1344 NULL, &graph_depth_fops); 1345 1345 1346 1346 return 0;
+3 -3
kernel/trace/trace_hwlat.c
··· 782 782 if (!top_dir) 783 783 return -ENOMEM; 784 784 785 - hwlat_sample_window = tracefs_create_file("window", 0640, 785 + hwlat_sample_window = tracefs_create_file("window", TRACE_MODE_WRITE, 786 786 top_dir, 787 787 &hwlat_window, 788 788 &trace_min_max_fops); 789 789 if (!hwlat_sample_window) 790 790 goto err; 791 791 792 - hwlat_sample_width = tracefs_create_file("width", 0644, 792 + hwlat_sample_width = tracefs_create_file("width", TRACE_MODE_WRITE, 793 793 top_dir, 794 794 &hwlat_width, 795 795 &trace_min_max_fops); 796 796 if (!hwlat_sample_width) 797 797 goto err; 798 798 799 - hwlat_thread_mode = trace_create_file("mode", 0644, 799 + hwlat_thread_mode = trace_create_file("mode", TRACE_MODE_WRITE, 800 800 top_dir, 801 801 NULL, 802 802 &thread_mode_fops);
+4 -4
kernel/trace/trace_kprobe.c
··· 1925 1925 if (ret) 1926 1926 return 0; 1927 1927 1928 - entry = tracefs_create_file("kprobe_events", 0644, NULL, 1929 - NULL, &kprobe_events_ops); 1928 + entry = tracefs_create_file("kprobe_events", TRACE_MODE_WRITE, 1929 + NULL, NULL, &kprobe_events_ops); 1930 1930 1931 1931 /* Event list interface */ 1932 1932 if (!entry) 1933 1933 pr_warn("Could not create tracefs 'kprobe_events' entry\n"); 1934 1934 1935 1935 /* Profile interface */ 1936 - entry = tracefs_create_file("kprobe_profile", 0444, NULL, 1937 - NULL, &kprobe_profile_ops); 1936 + entry = tracefs_create_file("kprobe_profile", TRACE_MODE_READ, 1937 + NULL, NULL, &kprobe_profile_ops); 1938 1938 1939 1939 if (!entry) 1940 1940 pr_warn("Could not create tracefs 'kprobe_profile' entry\n");
+7 -7
kernel/trace/trace_osnoise.c
··· 1856 1856 if (!top_dir) 1857 1857 return 0; 1858 1858 1859 - tmp = tracefs_create_file("period_us", 0640, top_dir, 1859 + tmp = tracefs_create_file("period_us", TRACE_MODE_WRITE, top_dir, 1860 1860 &osnoise_period, &trace_min_max_fops); 1861 1861 if (!tmp) 1862 1862 goto err; 1863 1863 1864 - tmp = tracefs_create_file("runtime_us", 0644, top_dir, 1864 + tmp = tracefs_create_file("runtime_us", TRACE_MODE_WRITE, top_dir, 1865 1865 &osnoise_runtime, &trace_min_max_fops); 1866 1866 if (!tmp) 1867 1867 goto err; 1868 1868 1869 - tmp = tracefs_create_file("stop_tracing_us", 0640, top_dir, 1869 + tmp = tracefs_create_file("stop_tracing_us", TRACE_MODE_WRITE, top_dir, 1870 1870 &osnoise_stop_tracing_in, &trace_min_max_fops); 1871 1871 if (!tmp) 1872 1872 goto err; 1873 1873 1874 - tmp = tracefs_create_file("stop_tracing_total_us", 0640, top_dir, 1874 + tmp = tracefs_create_file("stop_tracing_total_us", TRACE_MODE_WRITE, top_dir, 1875 1875 &osnoise_stop_tracing_total, &trace_min_max_fops); 1876 1876 if (!tmp) 1877 1877 goto err; 1878 1878 1879 - tmp = trace_create_file("cpus", 0644, top_dir, NULL, &cpus_fops); 1879 + tmp = trace_create_file("cpus", TRACE_MODE_WRITE, top_dir, NULL, &cpus_fops); 1880 1880 if (!tmp) 1881 1881 goto err; 1882 1882 #ifdef CONFIG_TIMERLAT_TRACER 1883 1883 #ifdef CONFIG_STACKTRACE 1884 - tmp = tracefs_create_file("print_stack", 0640, top_dir, 1884 + tmp = tracefs_create_file("print_stack", TRACE_MODE_WRITE, top_dir, 1885 1885 &osnoise_print_stack, &trace_min_max_fops); 1886 1886 if (!tmp) 1887 1887 goto err; 1888 1888 #endif 1889 1889 1890 - tmp = tracefs_create_file("timerlat_period_us", 0640, top_dir, 1890 + tmp = tracefs_create_file("timerlat_period_us", TRACE_MODE_WRITE, top_dir, 1891 1891 &timerlat_period, &trace_min_max_fops); 1892 1892 if (!tmp) 1893 1893 goto err;
+1 -1
kernel/trace/trace_printk.c
··· 384 384 if (ret) 385 385 return 0; 386 386 387 - trace_create_file("printk_formats", 0444, NULL, 387 + trace_create_file("printk_formats", TRACE_MODE_READ, NULL, 388 388 NULL, &ftrace_formats_fops); 389 389 390 390 return 0;
+2 -2
kernel/trace/trace_recursion_record.c
··· 226 226 { 227 227 struct dentry *dentry; 228 228 229 - dentry = trace_create_file("recursed_functions", 0644, NULL, NULL, 230 - &recursed_functions_fops); 229 + dentry = trace_create_file("recursed_functions", TRACE_MODE_WRITE, 230 + NULL, NULL, &recursed_functions_fops); 231 231 if (!dentry) 232 232 pr_warn("WARNING: Failed to create recursed_functions\n"); 233 233 return 0;
+3 -3
kernel/trace/trace_stack.c
··· 559 559 if (ret) 560 560 return 0; 561 561 562 - trace_create_file("stack_max_size", 0644, NULL, 562 + trace_create_file("stack_max_size", TRACE_MODE_WRITE, NULL, 563 563 &stack_trace_max_size, &stack_max_size_fops); 564 564 565 - trace_create_file("stack_trace", 0444, NULL, 565 + trace_create_file("stack_trace", TRACE_MODE_READ, NULL, 566 566 NULL, &stack_trace_fops); 567 567 568 568 #ifdef CONFIG_DYNAMIC_FTRACE 569 - trace_create_file("stack_trace_filter", 0644, NULL, 569 + trace_create_file("stack_trace_filter", TRACE_MODE_WRITE, NULL, 570 570 &trace_ops, &stack_trace_filter_fops); 571 571 #endif 572 572
+3 -3
kernel/trace/trace_stat.c
··· 297 297 if (!stat_dir && (ret = tracing_stat_init())) 298 298 return ret; 299 299 300 - session->file = tracefs_create_file(session->ts->name, 0644, 301 - stat_dir, 302 - session, &tracing_stat_fops); 300 + session->file = tracefs_create_file(session->ts->name, TRACE_MODE_WRITE, 301 + stat_dir, session, 302 + &tracing_stat_fops); 303 303 if (!session->file) 304 304 return -ENOMEM; 305 305 return 0;
+2 -2
kernel/trace/trace_uprobe.c
··· 1655 1655 if (ret) 1656 1656 return 0; 1657 1657 1658 - trace_create_file("uprobe_events", 0644, NULL, 1658 + trace_create_file("uprobe_events", TRACE_MODE_WRITE, NULL, 1659 1659 NULL, &uprobe_events_ops); 1660 1660 /* Profile interface */ 1661 - trace_create_file("uprobe_profile", 0444, NULL, 1661 + trace_create_file("uprobe_profile", TRACE_MODE_READ, NULL, 1662 1662 NULL, &uprobe_profile_ops); 1663 1663 return 0; 1664 1664 }