From: Michal Privoznik Date: Fri, 7 Jun 2019 11:56:46 +0000 (+0200) Subject: virHostdevPreparePCIDevices: Construct pcidevs list earlier X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=bf450f5b3dc607a6d1f2e65002186dde37c5de84;p=libvirt.git virHostdevPreparePCIDevices: Construct pcidevs list earlier There's no need to translate virDomainHostdevDef-s into virPCIDevice-s with locked list of PCI devices. Signed-off-by: Michal Privoznik Reviewed-by: Ján Tomko --- diff --git a/src/util/virhostdev.c b/src/util/virhostdev.c index 5935d926aa..7b5ccf2daf 100644 --- a/src/util/virhostdev.c +++ b/src/util/virhostdev.c @@ -639,12 +639,12 @@ virHostdevPreparePCIDevices(virHostdevManagerPtr mgr, if (!nhostdevs) return 0; + if (!(pcidevs = virHostdevGetPCIHostDeviceList(hostdevs, nhostdevs))) + return -1; + virObjectLock(mgr->activePCIHostdevs); virObjectLock(mgr->inactivePCIHostdevs); - if (!(pcidevs = virHostdevGetPCIHostDeviceList(hostdevs, nhostdevs))) - goto cleanup; - /* Detaching devices from the host involves several steps; each * of them is described at length below. * @@ -912,9 +912,9 @@ virHostdevPreparePCIDevices(virHostdevManagerPtr mgr, } cleanup: - virObjectUnref(pcidevs); virObjectUnlock(mgr->activePCIHostdevs); virObjectUnlock(mgr->inactivePCIHostdevs); + virObjectUnref(pcidevs); return ret; }