perf/arm-cmn: Fix the unhandled overflow status of counter 4 to 7
authorJing Zhang <renyu.zj@linux.alibaba.com>
Mon, 25 Sep 2023 03:22:32 +0000 (11:22 +0800)
committerWill Deacon <will@kernel.org>
Fri, 29 Sep 2023 15:24:59 +0000 (16:24 +0100)
The register por_dt_pmovsr Bits[7:0] indicates overflow from counters 7
to 0. But in arm_cmn_handle_irq(), only handled the overflow status of
Bits[3:0] which results in unhandled overflow status of counters 4 to 7.

So let the overflow status of DTC counters 4 to 7 to be handled.

Fixes: 0ba64770a2f2 ("perf: Add Arm CMN-600 PMU driver")
Signed-off-by: Jing Zhang <renyu.zj@linux.alibaba.com>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/1695612152-123633-1-git-send-email-renyu.zj@linux.alibaba.com
Signed-off-by: Will Deacon <will@kernel.org>
drivers/perf/arm-cmn.c

index 913dc04..6b50bc5 100644 (file)
@@ -1972,7 +1972,7 @@ static irqreturn_t arm_cmn_handle_irq(int irq, void *dev_id)
                u64 delta;
                int i;
 
-               for (i = 0; i < CMN_DTM_NUM_COUNTERS; i++) {
+               for (i = 0; i < CMN_DT_NUM_COUNTERS; i++) {
                        if (status & (1U << i)) {
                                ret = IRQ_HANDLED;
                                if (WARN_ON(!dtc->counters[i]))