diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/perf_counter.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/perf_counter.c b/kernel/perf_counter.c index 5229d1666fa5..b0b20a07f394 100644 --- a/kernel/perf_counter.c +++ b/kernel/perf_counter.c | |||
@@ -3787,6 +3787,14 @@ static void tp_perf_counter_destroy(struct perf_counter *counter) | |||
3787 | 3787 | ||
3788 | static const struct pmu *tp_perf_counter_init(struct perf_counter *counter) | 3788 | static const struct pmu *tp_perf_counter_init(struct perf_counter *counter) |
3789 | { | 3789 | { |
3790 | /* | ||
3791 | * Raw tracepoint data is a severe data leak, only allow root to | ||
3792 | * have these. | ||
3793 | */ | ||
3794 | if ((counter->attr.sample_type & PERF_SAMPLE_RAW) && | ||
3795 | !capable(CAP_SYS_ADMIN)) | ||
3796 | return ERR_PTR(-EPERM); | ||
3797 | |||
3790 | if (ftrace_profile_enable(counter->attr.config)) | 3798 | if (ftrace_profile_enable(counter->attr.config)) |
3791 | return NULL; | 3799 | return NULL; |
3792 | 3800 | ||