Message ID | 20250211095349.981096-17-rrichter@amd.com |
---|---|
State | Superseded |
Headers | show |
Series | cxl: Address translation support, part 1: Cleanups and refactoring | expand |
On Tue, 11 Feb 2025 10:53:46 +0100 Robert Richter <rrichter@amd.com> wrote: > 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> > Tested-by: Gregory Price <gourry@gourry.net> Seems reasonable to me as I've also run into fun problems with these due to setup script bugs... Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
On 2/11/25 2:53 AM, Robert Richter wrote: > 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> > Tested-by: Gregory Price <gourry@gourry.net> Reviewed-by: Dave Jiang <dave.jiang@intel.com> > --- > 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 3031d4773274..a56b84e7103a 100644 > --- a/drivers/cxl/core/region.c > +++ b/drivers/cxl/core/region.c > @@ -1790,6 +1790,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; > } >
diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c index 3031d4773274..a56b84e7103a 100644 --- a/drivers/cxl/core/region.c +++ b/drivers/cxl/core/region.c @@ -1790,6 +1790,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; }