summaryrefslogtreecommitdiffstats
path: root/drivers/cxl
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2022-12-01 14:03:24 -0800
committerDan Williams <dan.j.williams@intel.com>2022-12-02 23:52:32 -0800
commitbf3e5da8cb43a671b32fc125fa81b8f6a3677192 (patch)
tree9b59a6ceea65526d158e1f4949621421023e46f6 /drivers/cxl
parentb5807c80b5bc49764724ca22e83c04f527e86fd4 (diff)
downloadlinux-stable-bf3e5da8cb43a671b32fc125fa81b8f6a3677192.tar.gz
linux-stable-bf3e5da8cb43a671b32fc125fa81b8f6a3677192.tar.bz2
linux-stable-bf3e5da8cb43a671b32fc125fa81b8f6a3677192.zip
cxl/region: Fix missing probe failure
cxl_region_probe() allows for regions not in the 'commit' state to be enabled. Fail probe when the region is not committed otherwise the kernel may indicate that an address range is active when none of the decoders are active. Fixes: 8d48817df6ac ("cxl/region: Add region driver boiler plate") Cc: <stable@vger.kernel.org> Reviewed-by: Davidlohr Bueso <dave@stgolabs.net> Reviewed-by: Dave Jiang <dave.jiang@intel.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Link: https://lore.kernel.org/r/166993220462.1995348.1698008475198427361.stgit@dwillia2-xfh.jf.intel.com Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/cxl')
-rw-r--r--drivers/cxl/core/region.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
index f9ae5ad284ff..1bc2ebefa2a5 100644
--- a/drivers/cxl/core/region.c
+++ b/drivers/cxl/core/region.c
@@ -1923,6 +1923,9 @@ static int cxl_region_probe(struct device *dev)
*/
up_read(&cxl_region_rwsem);
+ if (rc)
+ return rc;
+
switch (cxlr->mode) {
case CXL_DECODER_PMEM:
return devm_cxl_add_pmem_region(cxlr);