diff mbox series

cxl/pci: Fix potential bogus return value upon successful probing

Message ID 20241114213439.6022-1-dave@stgolabs.net
State Superseded
Headers show
Series cxl/pci: Fix potential bogus return value upon successful probing | expand

Commit Message

Davidlohr Bueso Nov. 14, 2024, 9:34 p.m. UTC
If cxl_pci_ras_unmask() returns non-zero, cxl_pci_probe() will end up
returning that value, instead of zero. Found by code inspeaction.

Fixes: 248529edc86 (cxl: add RAS status unmasking for CXL)
Signed-off-by: Davidlohr Bueso <dave@stgolabs.net>
---
 drivers/cxl/pci.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Fan Ni Nov. 14, 2024, 11:34 p.m. UTC | #1
On Thu, Nov 14, 2024 at 01:34:39PM -0800, Davidlohr Bueso wrote:
> If cxl_pci_ras_unmask() returns non-zero, cxl_pci_probe() will end up
> returning that value, instead of zero. Found by code inspeaction.
/inspeaction/inspection/

Other than that,

Reviewed-by: Fan Ni <fan.ni@samsung.com>

Fan
> 
> Fixes: 248529edc86 (cxl: add RAS status unmasking for CXL)
> Signed-off-by: Davidlohr Bueso <dave@stgolabs.net>
> ---
>  drivers/cxl/pci.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/cxl/pci.c b/drivers/cxl/pci.c
> index 188412d45e0d..01092e5b3b46 100644
> --- a/drivers/cxl/pci.c
> +++ b/drivers/cxl/pci.c
> @@ -948,7 +948,7 @@ static int cxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>  
>  	pci_save_state(pdev);
>  
> -	return rc;
> +	return 0;
>  }
>  
>  static const struct pci_device_id cxl_mem_pci_tbl[] = {
Alison Schofield Nov. 15, 2024, 2:56 a.m. UTC | #2
On Thu, Nov 14, 2024 at 01:34:39PM -0800, Davidlohr Bueso wrote:
> If cxl_pci_ras_unmask() returns non-zero, cxl_pci_probe() will end up
> returning that value, instead of zero. Found by code inspeaction.
>

I agree that the return value should be 0 if we get this far,
because all rc's that need to be returned, are returned immediately.

But...the set and check of 'rc' for the calls cannot lead to a
'return rc' seems like a bad pattern. Most of those are dev_dbg()
messages.

This last one that bit us here, is repeating the same pattern of those
before it:

	rc = cxl_pci_ras_unmask(pdev);
        if (rc)
                dev_dbg(&pdev->dev, "No RAS reporting unmasked\n");

This can be:

	if (cxl_pci_ras_unmask(pdev))
		dev_dbg(&pdev->dev, "No RAS reporting unmasked\n");

There are a bunch that follow this pattern in that function, mostly in
the pmu_count loop.

How about tidying up the rc pattern throughout the function?

--Alison


> Fixes: 248529edc86 (cxl: add RAS status unmasking for CXL)
> Signed-off-by: Davidlohr Bueso <dave@stgolabs.net>
> ---
>  drivers/cxl/pci.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/cxl/pci.c b/drivers/cxl/pci.c
> index 188412d45e0d..01092e5b3b46 100644
> --- a/drivers/cxl/pci.c
> +++ b/drivers/cxl/pci.c
> @@ -948,7 +948,7 @@ static int cxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>  
>  	pci_save_state(pdev);
>  
> -	return rc;
> +	return 0;
>  }







>  
>  static const struct pci_device_id cxl_mem_pci_tbl[] = {
> -- 
> 2.47.0
> 
>
Davidlohr Bueso Nov. 15, 2024, 4:49 p.m. UTC | #3
On Thu, 14 Nov 2024, Alison Schofield wrote:\n
>This can be:
>
>	if (cxl_pci_ras_unmask(pdev))
>		dev_dbg(&pdev->dev, "No RAS reporting unmasked\n");

Yeah, it later occured to me that this was better. Will send a v2.

>
>There are a bunch that follow this pattern in that function, mostly in
>the pmu_count loop.
>
>How about tidying up the rc pattern throughout the function?

I think since this is an actual fix, any tidying up can come later.

Thanks,
Davidlohr
Ira Weiny Nov. 15, 2024, 7:32 p.m. UTC | #4
Davidlohr Bueso wrote:
> On Thu, 14 Nov 2024, Alison Schofield wrote:\n
> >This can be:
> >
> >	if (cxl_pci_ras_unmask(pdev))
> >		dev_dbg(&pdev->dev, "No RAS reporting unmasked\n");
> 
> Yeah, it later occured to me that this was better. Will send a v2.
> 
> >
> >There are a bunch that follow this pattern in that function, mostly in
> >the pmu_count loop.
> >
> >How about tidying up the rc pattern throughout the function?
> 
> I think since this is an actual fix, any tidying up can come later.

Yea that can come later.  Sorry if I implied differently.
Ira
diff mbox series

Patch

diff --git a/drivers/cxl/pci.c b/drivers/cxl/pci.c
index 188412d45e0d..01092e5b3b46 100644
--- a/drivers/cxl/pci.c
+++ b/drivers/cxl/pci.c
@@ -948,7 +948,7 @@  static int cxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 
 	pci_save_state(pdev);
 
-	return rc;
+	return 0;
 }
 
 static const struct pci_device_id cxl_mem_pci_tbl[] = {