[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20221123065919.31499-1-wangxiongfeng2@huawei.com>
Date: Wed, 23 Nov 2022 14:59:19 +0800
From: Xiongfeng Wang <wangxiongfeng2@...wei.com>
To: <saeed@...nel.org>, <sgoutham@...vell.com>, <lcherian@...vell.com>,
<gakula@...vell.com>, <jerinj@...vell.com>, <hkelam@...vell.com>,
<sbhatta@...vell.com>, <davem@...emloft.net>, <radhac@...vell.com>,
<edumazet@...gle.com>, <kuba@...nel.org>, <pabeni@...hat.com>,
<pnalla@...vell.com>, <snilla@...vell.com>
CC: <netdev@...r.kernel.org>, <yangyingliang@...wei.com>,
<wangxiongfeng2@...wei.com>
Subject: [PATCH v2] octeontx2-af: Fix reference count issue in rvu_sdp_init()
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. We don't need
to check if 'pdev' is NULL because it is already checked inside
pci_dev_put(). Also add pci_dev_put() for the error path.
Fixes: fe1939bb2340 ("octeontx2-af: Add SDP interface support")
Signed-off-by: Xiongfeng Wang <wangxiongfeng2@...wei.com>
Reviewed-by: Saeed Mahameed <saeed@...nel.org>
---
ChangeLog:
v1->v2:
1. drop the 'if(pdev)' check because it is already checked inside pci_dev_put()
2. add Reviewed-by tag
3. CC all the blamed authors and maintainers
---
drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c | 7 +++++--
1 file changed, 5 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..ae50d56258ec 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c
@@ -62,15 +62,18 @@ 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++;
}
+ pci_dev_put(pdev);
+
return 0;
}
--
2.20.1
Powered by blists - more mailing lists