Message ID | 20241114213439.6022-1-dave@stgolabs.net |
---|---|
State | New |
Headers | show |
Series | cxl/pci: Fix potential bogus return value upon successful probing | expand |
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[] = {
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 > >
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[] = {
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(-)