arm64/perf: Assert all platform event flags are within PERF_EVENT_FLAG_ARCH
authorAnshuman Khandual <anshuman.khandual@arm.com>
Wed, 7 Sep 2022 09:19:23 +0000 (14:49 +0530)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 7 Sep 2022 19:54:01 +0000 (21:54 +0200)
Ensure all platform specific event flags are within PERF_EVENT_FLAG_ARCH.

Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: James Clark <james.clark@arm.com>
Link: https://lkml.kernel.org/r/20220907091924.439193-4-anshuman.khandual@arm.com
drivers/perf/arm_spe_pmu.c
include/linux/perf/arm_pmu.h

index b65a7d9640e1549ea476418a52f0884748ea2550..db8a0a841062de0a20ba923109034585bd5af47b 100644 (file)
@@ -44,7 +44,9 @@
  * This allows us to perform the check, i.e, perfmon_capable(),
  * in the context of the event owner, once, during the event_init().
  */
-#define SPE_PMU_HW_FLAGS_CX                    BIT(0)
+#define SPE_PMU_HW_FLAGS_CX                    0x00001
+
+static_assert((PERF_EVENT_FLAG_ARCH & SPE_PMU_HW_FLAGS_CX) == SPE_PMU_HW_FLAGS_CX);
 
 static void set_spe_event_has_cx(struct perf_event *event)
 {
index 0407a38b470ab7ccdb4792957ed179dd8ac15e5d..0356cb6a215d870695f5fbbd8f5b0827bc99e6e5 100644 (file)
 /*
  * ARM PMU hw_event flags
  */
-/* Event uses a 64bit counter */
-#define ARMPMU_EVT_64BIT               1
-/* Event uses a 47bit counter */
-#define ARMPMU_EVT_47BIT               2
+#define ARMPMU_EVT_64BIT               0x00001 /* Event uses a 64bit counter */
+#define ARMPMU_EVT_47BIT               0x00002 /* Event uses a 47bit counter */
+
+static_assert((PERF_EVENT_FLAG_ARCH & ARMPMU_EVT_64BIT) == ARMPMU_EVT_64BIT);
+static_assert((PERF_EVENT_FLAG_ARCH & ARMPMU_EVT_47BIT) == ARMPMU_EVT_47BIT);
 
 #define HW_OP_UNSUPPORTED              0xFFFF
 #define C(_x)                          PERF_COUNT_HW_CACHE_##_x