[PATCH] driver: perf: arm_pmuv3: Identify 'event->attr.config1' based attributes

From: Anshuman Khandual
Date: Mon Oct 09 2023 - 01:18:13 EST


This defines macros to identify long and rdpmc attributes which get carried
inside 'event->attr.config1', thus making the code explicit and clear.

Cc: Will Deacon <will@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx>
---
This applies on v6.6-rc5.

drivers/perf/arm_pmuv3.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/perf/arm_pmuv3.c b/drivers/perf/arm_pmuv3.c
index 94723d00548e..797ffd5a8fed 100644
--- a/drivers/perf/arm_pmuv3.c
+++ b/drivers/perf/arm_pmuv3.c
@@ -298,16 +298,19 @@ PMU_FORMAT_ATTR(event, "config:0-15");
PMU_FORMAT_ATTR(long, "config1:0");
PMU_FORMAT_ATTR(rdpmc, "config1:1");

+#define ARM_PMUV3_ATTR_LONG 0x01
+#define ARM_PMUV3_ATTR_RDPMC 0x02
+
static int sysctl_perf_user_access __read_mostly;

static inline bool armv8pmu_event_is_64bit(struct perf_event *event)
{
- return event->attr.config1 & 0x1;
+ return event->attr.config1 & ARM_PMUV3_ATTR_LONG;
}

static inline bool armv8pmu_event_want_user_access(struct perf_event *event)
{
- return event->attr.config1 & 0x2;
+ return event->attr.config1 & ARM_PMUV3_ATTR_RDPMC;
}

static struct attribute *armv8_pmuv3_format_attrs[] = {
--
2.25.1