Re: [PATCH] octeontx2-af: Fix pci_dev reference leak in cgx_print_dmac_flt
From: Ratheesh Kannoth
Date: Fri Jun 26 2026 - 00:20:45 EST
On 2026-06-25 at 12:09:51, Wentao Liang (vulab@xxxxxxxxxxx) wrote:
> In cgx_print_dmac_flt(), pci_get_device() is called to look up the AF
> PCI device, but its return value is passed directly to pci_get_drvdata()
> without saving the pointer. This means pci_dev_put() can never be called
> for the obtained device, causing a reference count leak.
>
> Fix it by saving the return value of pci_get_device() in a local variable
> and releasing it via pci_dev_put() after the drvdata is extracted.
>
> Cc: stable@xxxxxxxxxxxxxxx
> Fixes: dbc52debf95f ("octeontx2-af: Debugfs support for DMAC filters")
> Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>
> ---
> .../net/ethernet/marvell/octeontx2/af/rvu_debugfs.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
> index fa461489acdd..90dc13df9ff9 100644
> --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
> +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
> @@ -2949,7 +2949,7 @@ RVU_DEBUG_SEQ_FOPS(cgx_stat, cgx_stat_display, NULL);
>
> static int cgx_print_dmac_flt(struct seq_file *s, int lmac_id)
> {
> - struct pci_dev *pdev = NULL;
> + struct pci_dev *af_pdev, *pdev = NULL;
> void *cgxd = s->private;
> char *bcast, *mcast;
> u16 index, domain;
> @@ -2958,8 +2958,13 @@ static int cgx_print_dmac_flt(struct seq_file *s, int lmac_id)
> u64 cfg, mac;
> int pf;
>
> - rvu = pci_get_drvdata(pci_get_device(PCI_VENDOR_ID_CAVIUM,
> - PCI_DEVID_OCTEONTX2_RVU_AF, NULL));
> + af_pdev = pci_get_device(PCI_VENDOR_ID_CAVIUM,
> + PCI_DEVID_OCTEONTX2_RVU_AF, NULL);
> + if (!af_pdev)
> + return -ENODEV;
> +
> + rvu = pci_get_drvdata(af_pdev);
> + pci_dev_put(af_pdev);
> if (!rvu)
> return -ENODEV;
Thanks for bringing this up! It looks like this issue was resolved in a previous commit:
469f4462ec83 ("octeontx2-af: fix CGX debugfs RVU AF PCI reference leaks").
>
> --
> 2.39.5 (Apple Git-154)
>