summaryrefslogtreecommitdiffstats
path: root/drivers/cxl/mem.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2022-05-18 16:34:31 -0700
committerDan Williams <dan.j.williams@intel.com>2022-05-19 08:50:41 -0700
commit76a4121e86649bf381aa32cb69ede913def57202 (patch)
treee3febe01a9f567d736a29f5f8734d06b1748d7c5 /drivers/cxl/mem.c
parent194d5edadf0b403f6de2be89c484a01c83ee269f (diff)
downloadlinux-stable-76a4121e86649bf381aa32cb69ede913def57202.tar.gz
linux-stable-76a4121e86649bf381aa32cb69ede913def57202.tar.bz2
linux-stable-76a4121e86649bf381aa32cb69ede913def57202.zip
cxl/mem: Fix cxl_mem_probe() error exit
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>
Diffstat (limited to 'drivers/cxl/mem.c')
-rw-r--r--drivers/cxl/mem.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/cxl/mem.c b/drivers/cxl/mem.c
index 7622cfefa1b0..184549e5093f 100644
--- a/drivers/cxl/mem.c
+++ b/drivers/cxl/mem.c
@@ -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,