cxl/mem: Fix cxl_mem_probe() error exit
authorDan Williams <dan.j.williams@intel.com>
Wed, 18 May 2022 23:34:31 +0000 (16:34 -0700)
committerDan Williams <dan.j.williams@intel.com>
Thu, 19 May 2022 15:50:41 +0000 (08:50 -0700)
The addition of cxl_mem_active() broke error exit scenarios for
cxl_mem_probe(). Return early rather than proceed with disabling
suspend, and update the label name since it is no longer a terminal
"out" label that exits the function.

Fixes: 9ea4dcf49878 ("PM: CXL: Disable suspend")
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/165291687176.1426646.15449254938752532784.stgit@dwillia2-xfh
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/cxl/mem.c

index 7622cfe..184549e 100644 (file)
@@ -171,13 +171,15 @@ static int cxl_mem_probe(struct device *dev)
                dev_err(dev, "CXL port topology %s not enabled\n",
                        dev_name(&parent_port->dev));
                rc = -ENXIO;
-               goto out;
+               goto unlock;
        }
 
        rc = create_endpoint(cxlmd, parent_port);
-out:
+unlock:
        device_unlock(&parent_port->dev);
        put_device(&parent_port->dev);
+       if (rc)
+               return rc;
 
        /*
         * The kernel may be operating out of CXL memory on this device,