extract general code of NodeDeviceReset

This commit is contained in:
Chunyan Liu 2014-03-06 15:14:44 +08:00 committed by Daniel P. Berrange
parent 1f12cef642
commit de4aace4b0

View File

@ -11450,6 +11450,25 @@ cleanup:
return ret;
}
static int
virHostdevPciNodeDeviceReset(virHostdevManagerPtr hostdev_mgr,
virPCIDevicePtr pci)
{
int ret = -1;
virObjectLock(hostdev_mgr->activePciHostdevs);
virObjectLock(hostdev_mgr->inactivePciHostdevs);
if (virPCIDeviceReset(pci, hostdev_mgr->activePciHostdevs,
hostdev_mgr->inactivePciHostdevs) < 0)
goto out;
ret = 0;
out:
virObjectUnlock(hostdev_mgr->inactivePciHostdevs);
virObjectUnlock(hostdev_mgr->activePciHostdevs);
return ret;
}
static int
qemuNodeDeviceReset(virNodeDevicePtr dev)
{
@ -11479,16 +11498,8 @@ qemuNodeDeviceReset(virNodeDevicePtr dev)
if (!pci)
goto cleanup;
virObjectLock(hostdev_mgr->activePciHostdevs);
virObjectLock(hostdev_mgr->inactivePciHostdevs);
if (virPCIDeviceReset(pci, hostdev_mgr->activePciHostdevs,
hostdev_mgr->inactivePciHostdevs) < 0)
goto out;
ret = virHostdevPciNodeDeviceReset(hostdev_mgr, pci);
ret = 0;
out:
virObjectUnlock(hostdev_mgr->inactivePciHostdevs);
virObjectUnlock(hostdev_mgr->activePciHostdevs);
virPCIDeviceFree(pci);
cleanup:
virNodeDeviceDefFree(def);