Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2a63dd72 authored by Jiri Slaby's avatar Jiri Slaby Committed by Konrad Rzeszutek Wilk
Browse files

xen-pcifront: fix PCI reference leak



Stanse found that when pdev is found and has no driver a reference is
leaked in pcifront_common_process. So add pci_dev_put there. For the
pdev == NULL case, pci_dev_put(NULL) is fine.

[v2: Updated to not dereference pcidev->dev per Milton's observation]

Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Milton Miller <miltonm@bga.com>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
parent c8ac3902
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -575,8 +575,9 @@ static pci_ers_result_t pcifront_common_process(int cmd,

	pcidev = pci_get_bus_and_slot(bus, devfn);
	if (!pcidev || !pcidev->driver) {
		dev_err(&pcidev->dev,
			"device or driver is NULL\n");
		dev_err(&pdev->xdev->dev, "device or AER driver is NULL\n");
		if (pcidev)
			pci_dev_put(pcidev);
		return result;
	}
	pdrv = pcidev->driver;