summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2018-10-05 13:24:36 +0100
committerWill Deacon <will.deacon@arm.com>2018-10-12 15:25:17 +0100
commitca2b497253ad01c80061a1f3ee9eb91b5d54a849 (patch)
tree06b96eee97a7f40173136b35f8b3ff945ae5925f /include
parentd91680e687f47984ffd3200c8e5d587903e7bd11 (diff)
downloadlwn-ca2b497253ad01c80061a1f3ee9eb91b5d54a849.tar.gz
lwn-ca2b497253ad01c80061a1f3ee9eb91b5d54a849.zip
arm64: perf: Reject stand-alone CHAIN events for PMUv3
It doesn't make sense for a perf event to be configured as a CHAIN event in isolation, so extend the arm_pmu structure with a ->filter_match() function to allow the backend PMU implementation to reject CHAIN events early. Cc: <stable@vger.kernel.org> Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/perf/arm_pmu.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/perf/arm_pmu.h b/include/linux/perf/arm_pmu.h
index 10f92e1d8e7b..bf309ff6f244 100644
--- a/include/linux/perf/arm_pmu.h
+++ b/include/linux/perf/arm_pmu.h
@@ -99,6 +99,7 @@ struct arm_pmu {
void (*stop)(struct arm_pmu *);
void (*reset)(void *);
int (*map_event)(struct perf_event *event);
+ int (*filter_match)(struct perf_event *event);
int num_events;
bool secure_access; /* 32-bit ARM only */
#define ARMV8_PMUV3_MAX_COMMON_EVENTS 0x40