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]
Message-Id: <20220324072952.65489-1-jakobkoschel@gmail.com>
Date:   Thu, 24 Mar 2022 08:29:52 +0100
From:   Jakob Koschel <jakobkoschel@...il.com>
To:     Dan Williams <dan.j.williams@...el.com>
Cc:     Vishal Verma <vishal.l.verma@...el.com>,
        Dave Jiang <dave.jiang@...el.com>,
        Ira Weiny <ira.weiny@...el.com>,
        "Rafael J. Wysocki" <rafael@...nel.org>,
        Len Brown <lenb@...nel.org>, Zou Wei <zou_wei@...wei.com>,
        Bjorn Helgaas <bhelgaas@...gle.com>, nvdimm@...ts.linux.dev,
        linux-acpi@...r.kernel.org, linux-kernel@...r.kernel.org,
        Mike Rapoport <rppt@...nel.org>,
        "Brian Johannesmeyer" <bjohannesmeyer@...il.com>,
        Cristiano Giuffrida <c.giuffrida@...nl>,
        "Bos, H.J." <h.j.bos@...nl>, Jakob Koschel <jakobkoschel@...il.com>
Subject: [PATCH] tools/testing/nvdimm: replace usage of found with dedicated list iterator variable

To move the list iterator variable into the list_for_each_entry_*()
macro in the future it should be avoided to use the list iterator
variable after the loop body.

To *never* use the list iterator variable after the loop it was
concluded to use a separate iterator variable instead of a
found boolean [1].

This removes the need to use a found variable and simply checking if
the variable was set, can determine if the break/goto was hit.

Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/
Signed-off-by: Jakob Koschel <jakobkoschel@...il.com>
---
 drivers/acpi/nfit/mce.c           | 11 +++++------
 tools/testing/nvdimm/test/iomap.c | 18 +++++++++---------
 2 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/drivers/acpi/nfit/mce.c b/drivers/acpi/nfit/mce.c
index ee8d9973f60b..6d11506e871e 100644
--- a/drivers/acpi/nfit/mce.c
+++ b/drivers/acpi/nfit/mce.c
@@ -15,7 +15,7 @@ static int nfit_handle_mce(struct notifier_block *nb, unsigned long val,
 {
 	struct mce *mce = (struct mce *)data;
 	struct acpi_nfit_desc *acpi_desc;
-	struct nfit_spa *nfit_spa;
+	struct nfit_spa *nfit_spa = NULL, *iter;
 
 	/* We only care about uncorrectable memory errors */
 	if (!mce_is_memory_error(mce) || mce_is_correctable(mce))
@@ -33,11 +33,10 @@ static int nfit_handle_mce(struct notifier_block *nb, unsigned long val,
 	mutex_lock(&acpi_desc_lock);
 	list_for_each_entry(acpi_desc, &acpi_descs, list) {
 		struct device *dev = acpi_desc->dev;
-		int found_match = 0;
 
 		mutex_lock(&acpi_desc->init_mutex);
-		list_for_each_entry(nfit_spa, &acpi_desc->spas, list) {
-			struct acpi_nfit_system_address *spa = nfit_spa->spa;
+		list_for_each_entry(iter, &acpi_desc->spas, list) {
+			struct acpi_nfit_system_address *spa = iter->spa;
 
 			if (nfit_spa_type(spa) != NFIT_SPA_PM)
 				continue;
@@ -46,7 +45,7 @@ static int nfit_handle_mce(struct notifier_block *nb, unsigned long val,
 				continue;
 			if ((spa->address + spa->length - 1) < mce->addr)
 				continue;
-			found_match = 1;
+			nfit_spa = iter;
 			dev_dbg(dev, "addr in SPA %d (0x%llx, 0x%llx)\n",
 				spa->range_index, spa->address, spa->length);
 			/*
@@ -58,7 +57,7 @@ static int nfit_handle_mce(struct notifier_block *nb, unsigned long val,
 		}
 		mutex_unlock(&acpi_desc->init_mutex);
 
-		if (!found_match)
+		if (!nfit_spa)
 			continue;
 
 		/* If this fails due to an -ENOMEM, there is little we can do */
diff --git a/tools/testing/nvdimm/test/iomap.c b/tools/testing/nvdimm/test/iomap.c
index b752ce47ead3..5d3d6b0fce2e 100644
--- a/tools/testing/nvdimm/test/iomap.c
+++ b/tools/testing/nvdimm/test/iomap.c
@@ -227,8 +227,8 @@ static bool nfit_test_release_region(struct device *dev,
 		struct nfit_test_resource *nfit_res = get_nfit_res(start);
 
 		if (nfit_res) {
-			struct nfit_test_request *req;
-			struct resource *res = NULL;
+			struct nfit_test_request *req = NULL;
+			struct nfit_test_request *iter;
 
 			if (dev) {
 				devres_release(dev, nfit_devres_release, match,
@@ -237,18 +237,18 @@ static bool nfit_test_release_region(struct device *dev,
 			}
 
 			spin_lock(&nfit_res->lock);
-			list_for_each_entry(req, &nfit_res->requests, list)
-				if (req->res.start == start) {
-					res = &req->res;
-					list_del(&req->list);
+			list_for_each_entry(iter, &nfit_res->requests, list)
+				if (iter->res.start == start) {
+					list_del(&iter->list);
+					req = iter;
 					break;
 				}
 			spin_unlock(&nfit_res->lock);
 
-			WARN(!res || resource_size(res) != n,
+			WARN(!req || resource_size(&req->res) != n,
 					"%s: start: %llx n: %llx mismatch: %pr\n",
-						__func__, start, n, res);
-			if (res)
+						__func__, start, n, &req->res);
+			if (req)
 				kfree(req);
 			return true;
 		}

base-commit: f443e374ae131c168a065ea1748feac6b2e76613
-- 
2.25.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ