Commit ad17c2a3 authored by Xiongfeng Wang's avatar Xiongfeng Wang Committed by Paolo Abeni
Browse files

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: fe1939bb ("octeontx2-af: Add SDP interface support")
Signed-off-by: default avatarXiongfeng Wang <wangxiongfeng2@huawei.com>
Reviewed-by: default avatarSaeed Mahameed <saeed@kernel.org>
Link: https://lore.kernel.org/r/20221123065919.31499-1-wangxiongfeng2@huawei.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 6aae1bcb
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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;
}