summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Jiang <dave.jiang@intel.com>2024-01-05 23:07:53 +0100
committerDan Williams <dan.j.williams@intel.com>2024-01-05 23:36:29 +0100
commit66f11890d35a609012037cccfd9e63ed98474f99 (patch)
tree74b80084346752a1876bc1fa0c273239a38d4723
parentcxl: Fix device reference leak in cxl_port_perf_data_calculate() (diff)
downloadlinux-66f11890d35a609012037cccfd9e63ed98474f99.tar.xz
linux-66f11890d35a609012037cccfd9e63ed98474f99.zip
cxl: Refactor to use __free() for cxl_root allocation in cxl_find_nvdimm_bridge()
Use scope-based resource management __free() macro to drop the open coded put_device() in cxl_find_nvdimm_bridge(). Reviewed-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Dave Jiang <dave.jiang@intel.com> Link: https://lore.kernel.org/r/170449247353.3779673.5963704495491343135.stgit@djiang5-mobl3 Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r--drivers/cxl/core/pmem.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/cxl/core/pmem.c b/drivers/cxl/core/pmem.c
index da92a901b9e8..e69625a8d6a1 100644
--- a/drivers/cxl/core/pmem.c
+++ b/drivers/cxl/core/pmem.c
@@ -64,16 +64,14 @@ static int match_nvdimm_bridge(struct device *dev, void *data)
struct cxl_nvdimm_bridge *cxl_find_nvdimm_bridge(struct cxl_memdev *cxlmd)
{
- struct cxl_root *cxl_root = find_cxl_root(cxlmd->endpoint);
- struct cxl_port *port;
+ struct cxl_root *cxl_root __free(put_cxl_root) =
+ find_cxl_root(cxlmd->endpoint);
struct device *dev;
if (!cxl_root)
return NULL;
- port = &cxl_root->port;
- dev = device_find_child(&port->dev, NULL, match_nvdimm_bridge);
- put_device(&port->dev);
+ dev = device_find_child(&cxl_root->port.dev, NULL, match_nvdimm_bridge);
if (!dev)
return NULL;