virHostdevPreparePCIDevices: Separate out function body

In near future we will have a list of PCI devices we want to
detach (held in virPCIDeviceListPtr) but we don't have
virDomainHostdevDefPtr. That's okay because
virHostdevPreparePCIDevices() works with virPCIDeviceListPtr
mostly anyway. And in very few places where it needs
virDomainHostdevDefPtr are not interesting for our case.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
ACKed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
Michal Privoznik 2019-06-07 14:13:24 +02:00
parent 081a12aba9
commit 1214023887

View File

@ -714,27 +714,22 @@ virHostdevReattachAllPCIDevices(virHostdevManagerPtr mgr,
}
}
int
virHostdevPreparePCIDevices(virHostdevManagerPtr mgr,
static int
virHostdevPreparePCIDevicesImpl(virHostdevManagerPtr mgr,
const char *drv_name,
const char *dom_name,
const unsigned char *uuid,
virPCIDeviceListPtr pcidevs,
virDomainHostdevDefPtr *hostdevs,
int nhostdevs,
unsigned int flags)
{
g_autoptr(virPCIDeviceList) pcidevs = NULL;
int last_processed_hostdev_vf = -1;
size_t i;
int ret = -1;
virPCIDeviceAddressPtr devAddr = NULL;
if (!nhostdevs)
return 0;
if (!(pcidevs = virHostdevGetPCIHostDeviceList(hostdevs, nhostdevs)))
return -1;
virObjectLock(mgr->activePCIHostdevs);
virObjectLock(mgr->inactivePCIHostdevs);
@ -984,6 +979,29 @@ virHostdevPreparePCIDevices(virHostdevManagerPtr mgr,
return ret;
}
int
virHostdevPreparePCIDevices(virHostdevManagerPtr mgr,
const char *drv_name,
const char *dom_name,
const unsigned char *uuid,
virDomainHostdevDefPtr *hostdevs,
int nhostdevs,
unsigned int flags)
{
g_autoptr(virPCIDeviceList) pcidevs = NULL;
if (!nhostdevs)
return 0;
if (!(pcidevs = virHostdevGetPCIHostDeviceList(hostdevs, nhostdevs)))
return -1;
return virHostdevPreparePCIDevicesImpl(mgr, drv_name, dom_name, uuid,
pcidevs, hostdevs, nhostdevs, flags);
}
/* @oldStateDir:
* For upgrade purpose: see virHostdevRestoreNetConfig
*/