Blob Blame History Raw
From: Dan Williams <dan.j.williams@intel.com>
Date: Mon, 7 Aug 2017 14:27:57 -0700
Subject: nfit: cleanup long de-reference chains in
 acpi_nfit_init_interleave_set
Git-commit: dcb79b15449fc3e4427a3d1cbcc72661ba13622d
Patch-mainline: v4.14-rc1
References: FATE#326060

Use a local 'struct acpi_nfit_control_region *' variable to shorten the
pointer chasing chains.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
---
 drivers/acpi/nfit/core.c | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
index be231a549eb0..2c5608b92578 100644
--- a/drivers/acpi/nfit/core.c
+++ b/drivers/acpi/nfit/core.c
@@ -1804,6 +1804,7 @@ static int acpi_nfit_init_interleave_set(struct acpi_nfit_desc *acpi_desc,
 		struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
 		struct acpi_nfit_memory_map *memdev = memdev_from_spa(acpi_desc,
 				spa->range_index, i);
+		struct acpi_nfit_control_region *dcr = nfit_mem->dcr;
 
 		if (!memdev || !nfit_mem->dcr) {
 			dev_err(dev, "%s: failed to find DCR\n", __func__);
@@ -1811,13 +1812,13 @@ static int acpi_nfit_init_interleave_set(struct acpi_nfit_desc *acpi_desc,
 		}
 
 		map->region_offset = memdev->region_offset;
-		map->serial_number = nfit_mem->dcr->serial_number;
+		map->serial_number = dcr->serial_number;
 
 		map2->region_offset = memdev->region_offset;
-		map2->serial_number = nfit_mem->dcr->serial_number;
-		map2->vendor_id = nfit_mem->dcr->vendor_id;
-		map2->manufacturing_date = nfit_mem->dcr->manufacturing_date;
-		map2->manufacturing_location = nfit_mem->dcr->manufacturing_location;
+		map2->serial_number = dcr->serial_number;
+		map2->vendor_id = dcr->vendor_id;
+		map2->manufacturing_date = dcr->manufacturing_date;
+		map2->manufacturing_location = dcr->manufacturing_location;
 	}
 
 	/* v1.1 namespaces */
@@ -1844,15 +1845,13 @@ static int acpi_nfit_init_interleave_set(struct acpi_nfit_desc *acpi_desc,
 			struct nd_mapping_desc *mapping = &ndr_desc->mapping[j];
 			struct nvdimm *nvdimm = mapping->nvdimm;
 			struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
+			struct acpi_nfit_control_region *dcr = nfit_mem->dcr;
 
-			if (map2->serial_number
-				== nfit_mem->dcr->serial_number &&
-			    map2->vendor_id
-				== nfit_mem->dcr->vendor_id &&
-			    map2->manufacturing_date
-				== nfit_mem->dcr->manufacturing_date &&
+			if (map2->serial_number == dcr->serial_number &&
+			    map2->vendor_id == dcr->vendor_id &&
+			    map2->manufacturing_date == dcr->manufacturing_date &&
 			    map2->manufacturing_location
-				== nfit_mem->dcr->manufacturing_location) {
+				    == dcr->manufacturing_location) {
 				mapping->position = i;
 				break;
 			}