]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
virtio: vdpa: Fix reference count leak in octep_sriov_enable()
authorMiaoqian Lin <linmq006@gmail.com>
Mon, 27 Oct 2025 06:07:35 +0000 (14:07 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Jan 2026 09:14:29 +0000 (10:14 +0100)
commit b41ca62c0019de1321d75f2b2f274a28784a41ed upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/vdpa/octeon_ep/octep_vdpa_main.c

index cd55b1aac1512cd7c4717d102f61d9866aef47ca..70c932df42fab16cdff13f05f6ea360d91c50ebc 100644 (file)
@@ -692,6 +692,7 @@ static int octep_sriov_enable(struct pci_dev *pdev, int num_vfs)
                octep_vdpa_assign_barspace(vf_pdev, pdev, index);
                if (++index == num_vfs) {
                        done = true;
+                       pci_dev_put(vf_pdev);
                        break;
                }
        }