summaryrefslogtreecommitdiff
path: root/drivers/cxl
diff options
context:
space:
mode:
authorRobert Richter <rrichter@amd.com>2025-05-09 17:06:58 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-07-06 11:00:06 +0200
commit9d90ab45d3d393532b7fa62d6a6b7ebbde9cf5fc (patch)
tree0cd3644ca78b4d39ffad059017d96804f2ac3de2 /drivers/cxl
parent96715eb1a12097a1a89f7a8912c9597385de63aa (diff)
downloadlinux-9d90ab45d3d393532b7fa62d6a6b7ebbde9cf5fc.tar.gz
linux-9d90ab45d3d393532b7fa62d6a6b7ebbde9cf5fc.tar.bz2
linux-9d90ab45d3d393532b7fa62d6a6b7ebbde9cf5fc.zip
cxl/region: Add a dev_err() on missing target list entries
[ Upstream commit d90acdf49e18029cfe4194475c45ef143657737a ] 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@amd.com> Reviewed-by: Gregory Price <gourry@gourry.net> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Reviewed-by: Dave Jiang <dave.jiang@intel.com> Reviewed-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Alison Schofield <alison.schofield@intel.com> Reviewed-by: "Fabio M. De Francesco" <fabio.m.de.francesco@linux.intel.com> Tested-by: Gregory Price <gourry@gourry.net> Acked-by: Dan Williams <dan.j.williams@intel.com> Link: https://patch.msgid.link/20250509150700.2817697-14-rrichter@amd.com Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/cxl')
-rw-r--r--drivers/cxl/core/region.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
index d7f7f88009d7..1728cae1e840 100644
--- a/drivers/cxl/core/region.c
+++ b/drivers/cxl/core/region.c
@@ -1653,6 +1653,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;
}