Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

virtio: vdpa: Fix reference count leak in octep_sriov_enable()

pci_get_device() will increase the reference count for the returned
pci_dev, and also decrease the reference count for the input parameter
from if it is not NULL.

If we break the loop in with 'vf_pdev' not NULL. We
need to call pci_dev_put() to decrease the reference count.

Found via static anlaysis and this is similar to commit c508eb042d97
("perf/x86/intel/uncore: Fix reference count leak in sad_cfg_iio_topology()")

Fixes: 8b6c724cdab8 ("virtio: vdpa: vDPA driver for Marvell OCTEON DPU devices")
Cc: stable@vger.kernel.org
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Message-Id: <20251027060737.33815-1-linmq006@gmail.com>

authored by

Miaoqian Lin and committed by
Michael S. Tsirkin
b41ca62c f0ea2e91

+1
+1
drivers/vdpa/octeon_ep/octep_vdpa_main.c
··· 736 736 octep_vdpa_assign_barspace(vf_pdev, pdev, index); 737 737 if (++index == num_vfs) { 738 738 done = true; 739 + pci_dev_put(vf_pdev); 739 740 break; 740 741 } 741 742 }