aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_event_perf.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trace/trace_event_perf.c')
-rw-r--r--kernel/trace/trace_event_perf.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/kernel/trace/trace_event_perf.c b/kernel/trace/trace_event_perf.c
index 5d12bb407b44..4b9c114ee9de 100644
--- a/kernel/trace/trace_event_perf.c
+++ b/kernel/trace/trace_event_perf.c
@@ -30,6 +30,18 @@ static int perf_trace_event_perm(struct ftrace_event_call *tp_event,
30 return ret; 30 return ret;
31 } 31 }
32 32
33 /*
34 * We checked and allowed to create parent,
35 * allow children without checking.
36 */
37 if (p_event->parent)
38 return 0;
39
40 /*
41 * It's ok to check current process (owner) permissions in here,
42 * because code below is called only via perf_event_open syscall.
43 */
44
33 /* The ftrace function trace is allowed only for root. */ 45 /* The ftrace function trace is allowed only for root. */
34 if (ftrace_event_is_function(tp_event)) { 46 if (ftrace_event_is_function(tp_event)) {
35 if (perf_paranoid_tracepoint_raw() && !capable(CAP_SYS_ADMIN)) 47 if (perf_paranoid_tracepoint_raw() && !capable(CAP_SYS_ADMIN))