Open access to perf_events monitoring for CAP_SYS_PERFMON privileged processes.
For backward compatibility reasons access to perf_events subsystem remains open
for CAP_SYS_ADMIN privileged processes but CAP_SYS_ADMIN usage for secure
perf_events monitoring is discouraged with respect to CAP_SYS_PERFMON 
capability.

Signed-off-by: Alexey Budankov <alexey.budan...@linux.intel.com>
---
 include/linux/perf_event.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 34c7c6910026..f46acd69425f 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -1285,7 +1285,7 @@ static inline int perf_is_paranoid(void)
 
 static inline int perf_allow_kernel(struct perf_event_attr *attr)
 {
-       if (sysctl_perf_event_paranoid > 1 && !capable(CAP_SYS_ADMIN))
+       if (sysctl_perf_event_paranoid > 1 && !perfmon_capable())
                return -EACCES;
 
        return security_perf_event_open(attr, PERF_SECURITY_KERNEL);
@@ -1293,7 +1293,7 @@ static inline int perf_allow_kernel(struct 
perf_event_attr *attr)
 
 static inline int perf_allow_cpu(struct perf_event_attr *attr)
 {
-       if (sysctl_perf_event_paranoid > 0 && !capable(CAP_SYS_ADMIN))
+       if (sysctl_perf_event_paranoid > 0 && !perfmon_capable())
                return -EACCES;
 
        return security_perf_event_open(attr, PERF_SECURITY_CPU);
@@ -1301,7 +1301,7 @@ static inline int perf_allow_cpu(struct perf_event_attr 
*attr)
 
 static inline int perf_allow_tracepoint(struct perf_event_attr *attr)
 {
-       if (sysctl_perf_event_paranoid > -1 && !capable(CAP_SYS_ADMIN))
+       if (sysctl_perf_event_paranoid > -1 && !perfmon_capable())
                return -EPERM;
 
        return security_perf_event_open(attr, PERF_SECURITY_TRACEPOINT);
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to