[PATCH] octeontx2-af: Fix reference count issue in rvu_sdp_init()

Subsystems: marvell octeontx2 rvu admin function driver, networking drivers, the rest

STALE1366d

2 messages, 2 authors, 2022-11-15 · open the first message on its own page

[PATCH] octeontx2-af: Fix reference count issue in rvu_sdp_init()

From: Xiongfeng Wang <hidden>
Date: 2022-11-14 13:10:36

pci_get_device() will decrease the reference count for the *from*
parameter. So we don't need to call put_device() to decrease the
reference. Let's remove the put_device() in the loop and only decrease
the reference count of the returned 'pdev' for the last loop because it
will not be passed to pci_get_device() as input parameter. Also add
pci_dev_put() for the error path.

Fixes: fe1939bb2340 ("octeontx2-af: Add SDP interface support")
Signed-off-by: Xiongfeng Wang <redacted>
---
 drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c
index b04fb226f708..283d1c90e083 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c
@@ -62,15 +62,19 @@ int rvu_sdp_init(struct rvu *rvu)
 		pfvf->sdp_info = devm_kzalloc(rvu->dev,
 					      sizeof(struct sdp_node_info),
 					      GFP_KERNEL);
-		if (!pfvf->sdp_info)
+		if (!pfvf->sdp_info) {
+			pci_dev_put(pdev);
 			return -ENOMEM;
+		}
 
 		dev_info(rvu->dev, "SDP PF number:%d\n", sdp_pf_num[i]);
 
-		put_device(&pdev->dev);
 		i++;
 	}
 
+	if (pdev)
+		pci_dev_put(pdev);
+
 	return 0;
 }
 
-- 
2.20.1

Re: [PATCH] octeontx2-af: Fix reference count issue in rvu_sdp_init()

From: Saeed Mahameed <saeed@kernel.org>
Date: 2022-11-15 21:44:19

On 14 Nov 21:28, Xiongfeng Wang wrote:
pci_get_device() will decrease the reference count for the *from*
parameter. So we don't need to call put_device() to decrease the
reference. Let's remove the put_device() in the loop and only decrease
the reference count of the returned 'pdev' for the last loop because it
will not be passed to pci_get_device() as input parameter. Also add
pci_dev_put() for the error path.

Fixes: fe1939bb2340 ("octeontx2-af: Add SDP interface support")
Signed-off-by: Xiongfeng Wang <redacted>
---
Reviewed-by: Saeed Mahameed <saeed@kernel.org>

quoted hunk
drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c
index b04fb226f708..283d1c90e083 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c
@@ -62,15 +62,19 @@ int rvu_sdp_init(struct rvu *rvu)
		pfvf->sdp_info = devm_kzalloc(rvu->dev,
					      sizeof(struct sdp_node_info),
					      GFP_KERNEL);
-		if (!pfvf->sdp_info)
+		if (!pfvf->sdp_info) {
+			pci_dev_put(pdev);
			return -ENOMEM;
+		}

		dev_info(rvu->dev, "SDP PF number:%d\n", sdp_pf_num[i]);

-		put_device(&pdev->dev);
		i++;
	}

+	if (pdev)
+		pci_dev_put(pdev);
+
you can drop the if(pdev), already checked inside pci_dev_put();
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help