projects/linux·commit b88a2595

perf/arm: Fix armpmu_map_hw_event()

b88a2595 · Stephen Boyd <[email protected]> · 2013-08-07 16:18:08 -07:00

Fix constraint check in armpmu_map_hw_event().

Reported-and-tested-by: Vince Weaver <[email protected]>
Cc: <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Commit
b88a2595b6d8aedbd275c07dfa784657b4f757eb
Parents
e0acd0a6

Changes

1 files changed · +6 −1

FileStatusAddDelContent
arch/arm/kernel/perf_event.cmodified+6−1View file

arch/arm/kernel/perf_event.c

View file
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
index d9f5cd4..21f7790 100644
--- a/arch/arm/kernel/perf_event.c
+++ b/arch/arm/kernel/perf_event.c
@@ -53,7 +53,12 @@ armpmu_map_cache_event(const unsigned (*cache_map)
static int
armpmu_map_hw_event(const unsigned (*event_map)[PERF_COUNT_HW_MAX], u64 config)
{
- int mapping = (*event_map)[config];
+ int mapping;
+
+ if (config >= PERF_COUNT_HW_MAX)
+ return -ENOENT;
+
+ mapping = (*event_map)[config];
return mapping == HW_OP_UNSUPPORTED ? -ENOENT : mapping;
}