Revert "Keep history after reset to 094b859"
This reverts commit c97b5c0d3ca3da755d7daec9b3a148062b416058, reversing
changes made to 6b5cc177149e07bdb4775559371241e573fb55fd.
Change-Id: I2fbf3d21c74ff886640f6ba54d783a8c3d0a75b3
Signed-off-by: Patrick Tjin <pattjin@google.com>
diff --git a/arch/arm/mach-msm/perf_event_msm_krait_l2.c b/arch/arm/mach-msm/perf_event_msm_krait_l2.c
index 34b9426..048f024 100644
--- a/arch/arm/mach-msm/perf_event_msm_krait_l2.c
+++ b/arch/arm/mach-msm/perf_event_msm_krait_l2.c
@@ -66,13 +66,15 @@
#define RESRX_VALUE_EN 0x80000000
+#define PMU_CODES_SIZE 64
+
/*
* The L2 PMU is shared between all CPU's, so protect
* its bitmap access.
*/
struct pmu_constraints {
u64 pmu_bitmap;
- u8 codes[64];
+ u8 codes[PMU_CODES_SIZE];
raw_spinlock_t lock;
} l2_pmu_constraints = {
.pmu_bitmap = 0,
@@ -460,7 +462,7 @@
u8 group = evt_type & 0x0000F;
u8 code = (evt_type & 0x00FF0) >> 4;
unsigned long flags;
- u32 err = 0;
+ int err = 0;
u64 bitmap_t;
u32 shift_idx;
@@ -475,6 +477,11 @@
shift_idx = ((reg * 4) + group);
+ if (shift_idx >= PMU_CODES_SIZE) {
+ err = -EINVAL;
+ goto out;
+ }
+
bitmap_t = 1 << shift_idx;
if (!(l2_pmu_constraints.pmu_bitmap & bitmap_t)) {
@@ -512,11 +519,17 @@
unsigned long flags;
u64 bitmap_t;
u32 shift_idx;
+ int err = 1;
raw_spin_lock_irqsave(&l2_pmu_constraints.lock, flags);
shift_idx = ((reg * 4) + group);
+ if (shift_idx >= PMU_CODES_SIZE) {
+ err = -EINVAL;
+ goto out;
+ }
+
bitmap_t = 1 << shift_idx;
/* Clear constraint bit. */
@@ -526,7 +539,8 @@
l2_pmu_constraints.codes[shift_idx] = -1;
raw_spin_unlock_irqrestore(&l2_pmu_constraints.lock, flags);
- return 1;
+out:
+ return err;
}
int get_num_events(void)