1
0

virHostdevReAttachPCIDevices: 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 <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Michal Privoznik 2019-06-10 17:19:01 +02:00
parent bf450f5b3d
commit b2985cfe33

View File

@ -963,16 +963,16 @@ virHostdevReAttachPCIDevices(virHostdevManagerPtr mgr,
if (!nhostdevs) if (!nhostdevs)
return; return;
virObjectLock(mgr->activePCIHostdevs);
virObjectLock(mgr->inactivePCIHostdevs);
if (!(pcidevs = virHostdevGetPCIHostDeviceList(hostdevs, nhostdevs))) { if (!(pcidevs = virHostdevGetPCIHostDeviceList(hostdevs, nhostdevs))) {
VIR_ERROR(_("Failed to allocate PCI device list: %s"), VIR_ERROR(_("Failed to allocate PCI device list: %s"),
virGetLastErrorMessage()); virGetLastErrorMessage());
virResetLastError(); virResetLastError();
goto cleanup; return;
} }
virObjectLock(mgr->activePCIHostdevs);
virObjectLock(mgr->inactivePCIHostdevs);
/* Reattaching devices to the host involves several steps; each /* Reattaching devices to the host involves several steps; each
* of them is described at length below */ * of them is described at length below */
@ -1088,10 +1088,9 @@ virHostdevReAttachPCIDevices(virHostdevManagerPtr mgr,
virPCIDeviceGetName(actual)); virPCIDeviceGetName(actual));
} }
cleanup:
virObjectUnref(pcidevs);
virObjectUnlock(mgr->activePCIHostdevs); virObjectUnlock(mgr->activePCIHostdevs);
virObjectUnlock(mgr->inactivePCIHostdevs); virObjectUnlock(mgr->inactivePCIHostdevs);
virObjectUnref(pcidevs);
} }
int int