]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
cxl/mem: Clarify @host for devm_cxl_add_nvdimm()
authorDan Williams <dan.j.williams@intel.com>
Wed, 14 Jan 2026 18:20:37 +0000 (12:20 -0600)
committerDave Jiang <dave.jiang@intel.com>
Thu, 22 Jan 2026 22:07:04 +0000 (15:07 -0700)
The convention for devm_ helpers in the CXL driver is that the first
argument is the @host for the operation (locked driver::probe() context).

Reviewed-by: Terry Bowman <terry.bowman@amd.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
Link: https://patch.msgid.link/20260114182055.46029-17-terry.bowman@amd.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
drivers/cxl/core/pmem.c
drivers/cxl/cxl.h
drivers/cxl/mem.c

index 8853415c106a98d0822f0a9f6d313937e8fe3614..e7b1e6fa0ea09bf4731ee9d77e44621cf5b720e4 100644 (file)
@@ -237,12 +237,13 @@ static void cxlmd_release_nvdimm(void *_cxlmd)
 
 /**
  * devm_cxl_add_nvdimm() - add a bridge between a cxl_memdev and an nvdimm
- * @parent_port: parent port for the (to be added) @cxlmd endpoint port
- * @cxlmd: cxl_memdev instance that will perform LIBNVDIMM operations
+ * @host: host device for devm operations
+ * @port: any port in the CXL topology to find the nvdimm-bridge device
+ * @cxlmd: parent of the to be created cxl_nvdimm device
  *
  * Return: 0 on success negative error code on failure.
  */
-int devm_cxl_add_nvdimm(struct cxl_port *parent_port,
+int devm_cxl_add_nvdimm(struct device *host, struct cxl_port *port,
                        struct cxl_memdev *cxlmd)
 {
        struct cxl_nvdimm_bridge *cxl_nvb;
@@ -250,7 +251,7 @@ int devm_cxl_add_nvdimm(struct cxl_port *parent_port,
        struct device *dev;
        int rc;
 
-       cxl_nvb = cxl_find_nvdimm_bridge(parent_port);
+       cxl_nvb = cxl_find_nvdimm_bridge(port);
        if (!cxl_nvb)
                return -ENODEV;
 
@@ -270,10 +271,10 @@ int devm_cxl_add_nvdimm(struct cxl_port *parent_port,
        if (rc)
                goto err;
 
-       dev_dbg(&cxlmd->dev, "register %s\n", dev_name(dev));
+       dev_dbg(host, "register %s\n", dev_name(dev));
 
        /* @cxlmd carries a reference on @cxl_nvb until cxlmd_release_nvdimm */
-       return devm_add_action_or_reset(&cxlmd->dev, cxlmd_release_nvdimm, cxlmd);
+       return devm_add_action_or_reset(host, cxlmd_release_nvdimm, cxlmd);
 
 err:
        put_device(dev);
index 42a76a7a088f57cb557a94f989e7d8ca8e44a274..6f3741a57932ce7153b27500bccde7ce165569c5 100644 (file)
@@ -887,7 +887,8 @@ struct cxl_nvdimm_bridge *devm_cxl_add_nvdimm_bridge(struct device *host,
                                                     struct cxl_port *port);
 struct cxl_nvdimm *to_cxl_nvdimm(struct device *dev);
 bool is_cxl_nvdimm(struct device *dev);
-int devm_cxl_add_nvdimm(struct cxl_port *parent_port, struct cxl_memdev *cxlmd);
+int devm_cxl_add_nvdimm(struct device *host, struct cxl_port *port,
+                       struct cxl_memdev *cxlmd);
 struct cxl_nvdimm_bridge *cxl_find_nvdimm_bridge(struct cxl_port *port);
 
 #ifdef CONFIG_CXL_REGION
index 6e6777b7bafb54a6d41835310470d35bf95082c8..c2ee7f7f6320b5f5a280e29473d1fc565f546297 100644 (file)
@@ -153,7 +153,7 @@ static int cxl_mem_probe(struct device *dev)
        }
 
        if (cxl_pmem_size(cxlds) && IS_ENABLED(CONFIG_CXL_PMEM)) {
-               rc = devm_cxl_add_nvdimm(parent_port, cxlmd);
+               rc = devm_cxl_add_nvdimm(dev, parent_port, cxlmd);
                if (rc) {
                        if (rc == -ENODEV)
                                dev_info(dev, "PMEM disabled by platform\n");