perf: arm-cmn: Fix unsigned comparison to less than zero
Subsystems (2)
PATCH 1/1 perf: arm-cmn: Fix unsigned comparison to less than zero
Fix unsigned comparison to less than zero by assigning the returned value of function platform_get_irq() to a new integer variable _ret_ and then make the comparison. In case the returned value is greater than or equal to zero, assign it to dtc->irq.
Addresses-Coverity-ID: 1497488 ("Unsigned compared against 0")
--- drivers/perf/arm-cmn.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
drivers/perf/arm-cmn.c +5 -3
@@ -1246,11 +1246,13 @@ static int arm_cmn_init_dtc(struct arm_cmn *cmn, struct arm_cmn_node *dn, int id {struct arm_cmn_dtc *dtc = cmn->dtc + idx;struct arm_cmn_node *xp; +int ret; dtc->base = dn->pmu_base -CMN_PMU_OFFSET ; - dtc->irq =platform_get_irq (to_platform_device (cmn->dev), idx); -if (dtc->irq <0 ) -return dtc->irq; + ret =platform_get_irq (to_platform_device (cmn->dev), idx); +if (ret <0 ) +return ret; + dtc->irq = ret;writel_relaxed (0 , dtc->base +CMN_DT_PMCR );writel_relaxed (0x1ff , dtc->base +CMN_DT_PMOVSR_CLR );
Signature · 1 line
2.27.0
Will Deacon
maintainerQuoted 20 lines · Gustavo A. R. Silva
Fix unsigned comparison to less than zero by assigning the returned value of function
platform_get_irq()to a new integer variable _ret_ and then make the comparison. In case the returned value is greater than or equal to zero, assign it todtc->irq.Addresses-Coverity-ID: 1497488 ("Unsigned compared against 0")
Fixes 0ba64770a2f2 ("perf: Add Arm CMN-600 PMU driver")Signed-off-by Gustavo A. R. Silva <[email protected]>--- drivers/perf/arm-cmn.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)drivers/perf/arm-cmn.c +0
-0@@ -1246,11 +1246,13 @@ static int arm_cmn_init_dtc(struct arm_cmn *cmn, struct arm_cmn_node *dn, int id {struct arm_cmn_dtc *dtc = cmn->dtc + idx;struct arm_cmn_node *xp;
drivers/perf/arm-cmn.c static int arm_cmn_init_dtc(struct arm_cmn *cmn, struct arm_cmn_node *dn, int id · line 1255
Quoted 10 lines
drivers/perf/arm-cmn.c +5
-3+int ret; dtc->base = dn->pmu_base -CMN_PMU_OFFSET ; - dtc->irq =platform_get_irq (to_platform_device (cmn->dev), idx); -if (dtc->irq <0 ) -return dtc->irq; + ret =platform_get_irq (to_platform_device (cmn->dev), idx); +if (ret <0 ) +return ret; + dtc->irq = ret;
Why don't we just change the type of the 'irq' field in 'struct arm_cmn_dtc' to be 'int' instead of 'unsigned int'?
Robin?
Will