Re: [PATCH v2] cxl/pci: Honor -EPROBE_DEFER from component register setup

Dave Jiang <[email protected]>
Newsgroups org.kernel.vger.linux-cxl
Message-ID <[email protected]>

On 7/6/26 3:43 PM, 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.
> 
> 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]>

Applied to cxl/next
430c502c80e5

> ---
>  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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.