cxl/region: Fix missing probe failure
authorDan Williams <dan.j.williams@intel.com>
Thu, 1 Dec 2022 22:03:24 +0000 (14:03 -0800)
committerDan Williams <dan.j.williams@intel.com>
Sat, 3 Dec 2022 07:52:32 +0000 (23:52 -0800)
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>
drivers/cxl/core/region.c

index f9ae5ad284ffb0c8ac3e16a84d8896052006dc51..1bc2ebefa2a57a9b430fd7cb93c602683510a137 100644 (file)
@@ -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);