hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/tools/perf/util/cloexec.c
....@@ -1,14 +1,15 @@
11 // SPDX-License-Identifier: GPL-2.0
22 #include <errno.h>
33 #include <sched.h>
4
-#include "util.h"
5
-#include "../perf.h"
4
+#include "util.h" // for sched_getcpu()
5
+#include "../perf-sys.h"
66 #include "cloexec.h"
7
+#include "event.h"
78 #include "asm/bug.h"
89 #include "debug.h"
910 #include <unistd.h>
10
-#include <asm/unistd.h>
1111 #include <sys/syscall.h>
12
+#include <linux/string.h>
1213
1314 static unsigned long flag = PERF_FLAG_FD_CLOEXEC;
1415
....@@ -27,7 +28,7 @@
2728
2829 static int perf_flag_probe(void)
2930 {
30
- /* use 'safest' configuration as used in perf_evsel__fallback() */
31
+ /* use 'safest' configuration as used in evsel__fallback() */
3132 struct perf_event_attr attr = {
3233 .type = PERF_TYPE_SOFTWARE,
3334 .config = PERF_COUNT_SW_CPU_CLOCK,
....@@ -64,7 +65,7 @@
6465 return 1;
6566 }
6667
67
- WARN_ONCE(err != EINVAL && err != EBUSY,
68
+ WARN_ONCE(err != EINVAL && err != EBUSY && err != EACCES,
6869 "perf_event_open(..., PERF_FLAG_FD_CLOEXEC) failed with unexpected error %d (%s)\n",
6970 err, str_error_r(err, sbuf, sizeof(sbuf)));
7071
....@@ -82,7 +83,7 @@
8283 if (fd >= 0)
8384 close(fd);
8485
85
- if (WARN_ONCE(fd < 0 && err != EBUSY,
86
+ if (WARN_ONCE(fd < 0 && err != EBUSY && err != EACCES,
8687 "perf_event_open(..., 0) failed unexpectedly with error %d (%s)\n",
8788 err, str_error_r(err, sbuf, sizeof(sbuf))))
8889 return -1;