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>] [day] [month] [year] [list]
Date: Mon, 26 Feb 2024 19:10:24 +0100
From: Markus Elfring <Markus.Elfring@....de>
To: freedreno@...ts.freedesktop.org, dri-devel@...ts.freedesktop.org,
 linux-arm-msm@...r.kernel.org, kernel-janitors@...r.kernel.org,
 Abhinav Kumar <quic_abhinavk@...cinc.com>,
 Akhil P Oommen <quic_akhilpo@...cinc.com>, Daniel Vetter <daniel@...ll.ch>,
 David Airlie <airlied@...il.com>,
 Dmitry Baryshkov <dmitry.baryshkov@...aro.org>,
 Douglas Anderson <dianders@...omium.org>,
 Konrad Dybcio <konrad.dybcio@...aro.org>,
 Marijn Suijten <marijn.suijten@...ainline.org>,
 Rob Clark <robdclark@...il.com>, Sean Paul <sean@...rly.run>
Cc: LKML <linux-kernel@...r.kernel.org>
Subject: [PATCH] drm/msm/a6xx: Improve error handling in a6xx_gmu_rpmh_init()

From: Markus Elfring <elfring@...rs.sourceforge.net>
Date: Mon, 26 Feb 2024 18:46:38 +0100

The label “err” was used as a target for two statements despite of
the implementation detail that failure conditions could be handled better.

* Thus return directly after a call of the function “a6xx_gmu_get_mmio”
  failed at the beginning.

* Reorder affected statements at the end.

* Adjust a jump target.

* Omit an extra pointer check which became unnecessary
  with this refactoring.

Signed-off-by: Markus Elfring <elfring@...rs.sourceforge.net>
---
 drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
index 8c4900444b2c..55a34f11eb9a 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -525,7 +525,7 @@ static void a6xx_gmu_rpmh_init(struct a6xx_gmu *gmu)
 	bool pdc_in_aop = false;

 	if (IS_ERR(pdcptr))
-		goto err;
+		return;

 	if (adreno_is_a650(adreno_gpu) ||
 	    adreno_is_a660_family(adreno_gpu) ||
@@ -541,7 +541,7 @@ static void a6xx_gmu_rpmh_init(struct a6xx_gmu *gmu)
 	if (!pdc_in_aop) {
 		seqptr = a6xx_gmu_get_mmio(pdev, "gmu_pdc_seq");
 		if (IS_ERR(seqptr))
-			goto err;
+			goto unmap_io_pdc;
 	}

 	/* Disable SDE clock gating */
@@ -634,11 +634,11 @@ static void a6xx_gmu_rpmh_init(struct a6xx_gmu *gmu)

 	a6xx_rpmh_stop(gmu);

-err:
-	if (!IS_ERR_OR_NULL(pdcptr))
-		iounmap(pdcptr);
 	if (!IS_ERR_OR_NULL(seqptr))
 		iounmap(seqptr);
+
+unmap_io_pdc:
+	iounmap(pdcptr);
 }

 /*
--
2.43.2


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ