lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 22 Sep 2013 13:04:23 +0800
From:	Wei Yongjun <weiyj.lk@...il.com>
To:	grant.likely@...aro.org, rob.herring@...xeda.com, nico@...aro.org,
	will.deacon@....com, lorenzo.pieralisi@....com,
	dave.martin@...aro.org, sudeep.karkadanagesha@....com
Cc:	yongjun_wei@...ndmicro.com.cn, linux-kernel@...r.kernel.org,
	devicetree@...r.kernel.org
Subject: [PATCH -next] drivers: CCI: fix the error handle in cci_pmu_probe()

From: Wei Yongjun <yongjun_wei@...ndmicro.com.cn>

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@...ndmicro.com.cn>
---
 drivers/bus/arm-cci.c | 33 +++++++--------------------------
 1 file changed, 7 insertions(+), 26 deletions(-)

diff --git a/drivers/bus/arm-cci.c b/drivers/bus/arm-cci.c
index dc6528e..edad26c 100644
--- a/drivers/bus/arm-cci.c
+++ b/drivers/bus/arm-cci.c
@@ -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)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ