[PATCH v4 12/14] cxl/region: Add a dev_err() on missing target list entries

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


Broken target lists are hard to discover as the driver fails at a
later initialization stage. Add an error message for this.

Example log messages:

cxl_mem mem1: failed to find endpoint6:0000:e0:01.3 in target list of decoder1.1
cxl_port endpoint6: failed to register decoder6.0: -6
cxl_port endpoint6: 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 | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
index bd1ce9d8bed7..175f5f600c5d 100644
--- a/drivers/cxl/core/region.c
+++ b/drivers/cxl/core/region.c
@@ -1805,6 +1805,13 @@ static int find_pos_and_ways(struct cxl_port *port, struct range *range,
}
put_device(dev);

+ if (rc)
+ dev_err(port->uport_dev,
+ "failed to find %s:%s in target list of %s\n",
+ dev_name(&port->dev),
+ dev_name(port->parent_dport->dport_dev),
+ dev_name(&cxlsd->cxld.dev));
+
return rc;
}

--
2.39.5