summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaoxiang Li <lihaoxiang@isrc.iscas.ac.cn>2026-05-25 11:26:11 +0300
committerJakub Kicinski <kuba@kernel.org>2026-05-27 05:03:37 +0300
commit2bcf59eefb9f00a2b1d426b639ee49c305a80695 (patch)
treebd3173ba2292e964f8230dfac8234a005fb74ce9
parent46d111a3ef3b5972804dcdce0833767143a12192 (diff)
downloadlinux-2bcf59eefb9f00a2b1d426b639ee49c305a80695.tar.xz
net: thunderx: fix PTP device ref leak in nicvf_probe()
cavium_ptp_get() acquires a reference to the PTP PCI device through pci_get_device(). If any initialization step fails after cavium_ptp_get(), the PTP PCI device reference is leaked. Add a common error path to release the PTP reference before returning from probe failures. Signed-off-by: Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn> Link: https://patch.msgid.link/20260525082611.61817-1-lihaoxiang@isrc.iscas.ac.cn Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--drivers/net/ethernet/cavium/thunder/nicvf_main.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_main.c b/drivers/net/ethernet/cavium/thunder/nicvf_main.c
index 1c183827cb9e..b9ade881c81c 100644
--- a/drivers/net/ethernet/cavium/thunder/nicvf_main.c
+++ b/drivers/net/ethernet/cavium/thunder/nicvf_main.c
@@ -2109,8 +2109,10 @@ static int nicvf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
}
err = pci_enable_device(pdev);
- if (err)
- return dev_err_probe(dev, err, "Failed to enable PCI device\n");
+ if (err) {
+ err = dev_err_probe(dev, err, "Failed to enable PCI device\n");
+ goto err_put_ptp;
+ }
err = pci_request_regions(pdev, DRV_NAME);
if (err) {
@@ -2264,6 +2266,8 @@ err_release_regions:
pci_release_regions(pdev);
err_disable_device:
pci_disable_device(pdev);
+err_put_ptp:
+ cavium_ptp_put(ptp_clock);
return err;
}