arm-cci: Fix CCI PMU event validation
authorSuzuki K. Poulose <suzuki.poulose@arm.com>
Wed, 18 Mar 2015 12:24:42 +0000 (12:24 +0000)
committerWill Deacon <will.deacon@arm.com>
Fri, 27 Mar 2015 13:45:02 +0000 (13:45 +0000)
commit874c571414d5617f4042298986b6a826816ee885
tree3098e8962b192f2669845b09fab68d553fa168f6
parentee8e5d5fbec0e880b18bbdbfe12de53ab1dec21f
arm-cci: Fix CCI PMU event validation

We mask the event with the CCI_PMU_EVENT_MASK, before passing
the config to pmu_validate_hw_event(), which causes extra bits
to be ignored and qualifies an invalid event code as valid.

e.g,
 $ perf stat -a -C 0 -e CCI_400/config=0x1ff,name=cycles/ sleep 1
   Performance counter stats for 'system wide':

         506951142      cycles

       1.013879626 seconds time elapsed

where, cycles has an event coding of 0xff. This patch also removes
the unnecessary 'event' mask in pmu_write_register, since the config_base
is set by the pmu code after the event is validated.

Acked-by: Punit Agrawal <punit.agrawal@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
drivers/bus/arm-cci.c