summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>2012-10-18 16:38:40 +0100
committerJon Medhurst <tixy@linaro.org>2012-10-18 17:44:23 +0100
commit6d262acec4f6a8a9fc59a5b6a694c32f6f7a908d (patch)
tree2683e579ff7c20a877b22087e4f3b40307e3dbb3
parent04846252ddcde0bc9fae7f33fa46b31719b8eb1b (diff)
driver: misc/arm-cci: fix map_event for PMU support
cci_pmu_map_event doesn't check the event type. This results in CCI PMU acceptng other type of perf events. This could potentially break other perf events like software tracing, hardware breakpoints for debugging,...etc. Reported by:Dietmar Eggemann <dietmar.eggemann@arm.com> Signed-off-by: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
-rw-r--r--drivers/misc/arm-cci.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/misc/arm-cci.c b/drivers/misc/arm-cci.c
index 53845eadaa9a..01993130c4ac 100644
--- a/drivers/misc/arm-cci.c
+++ b/drivers/misc/arm-cci.c
@@ -181,6 +181,9 @@ static int cci_pmu_map_event(struct perf_event *event)
int mapping;
u8 config = event->attr.config & CCI400_PMU_EVENT_MASK;
+ if (event->attr.type < PERF_TYPE_MAX)
+ return -ENOENT;
+
/* 0xff is used to represent CCI Cycles */
if (config == 0xff)
mapping = config;