drivers: CCI: fix the error handle in cci_pmu_probe()
authorWei Yongjun <yongjun_wei@trendmicro.com.cn>
Sun, 22 Sep 2013 05:04:23 +0000 (06:04 +0100)
committerWill Deacon <will.deacon@arm.com>
Tue, 24 Sep 2013 13:03:05 +0000 (14:03 +0100)
This patch fix the error handle of function cci_pmu_probe():
- using IS_ERR() instead of NULL test for the return value of
  devm_ioremap_resource() since it nerver return NULL.
- remove kfree() for devm_kzalloc allocated memory
- remove dev_warn() since devm_ioremap_resource() has error message
  already.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Will Deacon <will.deacon@arm.com>
drivers/bus/arm-cci.c

index dc6528e8b8fb620665a76ef6cac1654e746f1843..bb5b90e8e7687a0b71d33aae92f7050f741a6fa9 100644 (file)
@@ -565,18 +565,9 @@ static int cci_pmu_probe(struct platform_device *pdev)
                return -ENOMEM;
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (!res) {
-               dev_warn(&pdev->dev, "Failed to get mem resource\n");
-               ret = -EINVAL;
-               goto memalloc_err;
-       };
-
        pmu->base = devm_ioremap_resource(&pdev->dev, res);
-       if (!pmu->base) {
-               dev_warn(&pdev->dev, "Failed to ioremap\n");
-               ret = -ENOMEM;
-               goto memalloc_err;
-       }
+       if (IS_ERR(pmu->base))
+               return -ENOMEM;
 
        /*
         * CCI PMU has 5 overflow signals - one per counter; but some may be tied
@@ -601,22 +592,18 @@ static int cci_pmu_probe(struct platform_device *pdev)
        if (i < CCI_PMU_MAX_HW_EVENTS) {
                dev_warn(&pdev->dev, "In-correct number of interrupts: %d, should be %d\n",
                        i, CCI_PMU_MAX_HW_EVENTS);
-               ret = -EINVAL;
-               goto memalloc_err;
+               return -EINVAL;
        }
 
        pmu->port_ranges = port_range_by_rev();
        if (!pmu->port_ranges) {
                dev_warn(&pdev->dev, "CCI PMU version not supported\n");
-               ret = -EINVAL;
-               goto memalloc_err;
+               return -EINVAL;
        }
 
        pmu->cci_pmu = devm_kzalloc(&pdev->dev, sizeof(*(pmu->cci_pmu)), GFP_KERNEL);
-       if (!pmu->cci_pmu) {
-               ret = -ENOMEM;
-               goto memalloc_err;
-       }
+       if (!pmu->cci_pmu)
+               return -ENOMEM;
 
        pmu->hw_events.events = pmu->events;
        pmu->hw_events.used_mask = pmu->used_mask;
@@ -624,15 +611,9 @@ static int cci_pmu_probe(struct platform_device *pdev)
 
        ret = cci_pmu_init(pmu->cci_pmu, pdev);
        if (ret)
-               goto pmuinit_err;
+               return ret;
 
        return 0;
-
-pmuinit_err:
-       kfree(pmu->cci_pmu);
-memalloc_err:
-       kfree(pmu);
-       return ret;
 }
 
 static int cci_platform_probe(struct platform_device *pdev)
This page took 0.027202 seconds and 5 git commands to generate.