[PATCH v4 11/14] cxl/region: Add a dev_warn() on registration failure

From: Robert Richter
Date: Thu Mar 06 2025 - 11:48:15 EST


Esp. in complex system configurations with multiple endpoints and
interleaving setups it is hard to detect region setup failures as its
registration may silently fail. Add messages to show registration
failures.

Example log message:

cxl region5: region sort successful
cxl region5: mem0:endpoint5 decoder5.0 add: mem0:decoder5.0 @ 0 next: none nr_eps: 1 nr_targets: 1
cxl_port endpoint5: decoder5.0: range: 0x22350000000-0x2634fffffff iw: 1 ig: 256
cxl region5: pci0000:e0:port1 decoder1.2 add: mem0:decoder5.0 @ 0 next: mem0 nr_eps: 1 nr_targets: 1
cxl region5: pci0000:e0:port1 iw: 1 ig: 256
cxl region5: pci0000:e0:port1: decoder1.2 expected 0000:e0:01.2 at 0
cxl endpoint5: failed to attach decoder5.0 to region5: -6
cxl_port endpoint5: probe: 0

Signed-off-by: Robert Richter <rrichter@xxxxxxx>
Reviewed-by: Gregory Price <gourry@xxxxxxxxxx>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
Reviewed-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Tested-by: Gregory Price <gourry@xxxxxxxxxx>
---
drivers/cxl/core/region.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
index cf58ee284696..bd1ce9d8bed7 100644
--- a/drivers/cxl/core/region.c
+++ b/drivers/cxl/core/region.c
@@ -2162,6 +2162,12 @@ static int attach_target(struct cxl_region *cxlr,
rc = cxl_region_attach(cxlr, cxled, pos);
up_read(&cxl_dpa_rwsem);
up_write(&cxl_region_rwsem);
+
+ if (rc)
+ dev_warn(cxled->cxld.dev.parent,
+ "failed to attach %s to %s: %d\n",
+ dev_name(&cxled->cxld.dev), dev_name(&cxlr->dev), rc);
+
return rc;
}

--
2.39.5