Re: [PATCH v2] cxl/pci: Honor -EPROBE_DEFER from component register setup
Alison Schofield <[email protected]>
| Newsgroups | org.kernel.vger.linux-cxl |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Jul 06, 2026 at 03:43:22PM -0700, Dave Jiang wrote: > cxl_pci_setup_regs() for CXL_REGLOC_RBI_COMPONENT can return > -EPROBE_DEFER on a Restricted CXL Host (RCD) when the upstream port > has not yet been enumerated and the Component Registers must be > extracted from the RCRB. cxl_pci_probe() treats every non-zero return > from that call as the benign "component registers not found" case, > logs a warning, and continues. The rc is then immediately overwritten > by the subsequent cxl_pci_type3_init_mailbox() call, so the deferral > is silently swallowed. > > Return -EPROBE_DEFER instead of continuing so the probe is retried > once the upstream port is available. Let's get this one merged, and go after the Sashiko pre-existing issue in new patch. Reviewed-by: Alison Schofield <[email protected]> > > Fixes: 733b57f262b0 ("cxl/pci: Early setup RCH dport component registers from RCRB") > Reported-by: [email protected] > Closes: https://lore.kernel.org/linux-cxl/ajzhsubot_PSYtHQ@MWDK4CY14F/T/#m063bbf76b1c9c293ade52ab311018ae6bba11a44 > Assisted-by: Claude:claude-opus-4-8 > Signed-off-by: Dave Jiang <[email protected]> > --- > drivers/cxl/pci.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/cxl/pci.c b/drivers/cxl/pci.c > index 267c679b0b3c..6a132a6c4c5b 100644 > --- a/drivers/cxl/pci.c > +++ b/drivers/cxl/pci.c > @@ -829,10 +829,13 @@ static int cxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) > */ > rc = cxl_pci_setup_regs(pdev, CXL_REGLOC_RBI_COMPONENT, > &cxlds->reg_map); > - if (rc) > + if (rc) { > + if (rc == -EPROBE_DEFER) > + return rc; > dev_warn(&pdev->dev, "No component registers (%d)\n", rc); > - else if (!cxlds->reg_map.component_map.ras.valid) > + } else if (!cxlds->reg_map.component_map.ras.valid) { > dev_dbg(&pdev->dev, "RAS registers not found\n"); > + } > > rc = cxl_pci_type3_init_mailbox(cxlds); > if (rc) > > base-commit: 8cdeaa50eae8dad34885515f62559ee83e7e8dda > -- > 2.54.0 > >