This piece of code will be re-used later.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
ACKed-by: Peter Krempa <pkrempa@redhat.com>
}
+bool
+virDomainDefHasVFIOHostdev(const virDomainDef *def)
+{
+ size_t i;
+
+ for (i = 0; i < def->nhostdevs; i++) {
+ const virDomainHostdevDef *tmp = def->hostdevs[i];
+ if (tmp->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
+ tmp->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI &&
+ tmp->source.subsys.u.pci.backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO)
+ return true;
+ }
+
+ return false;
+}
+
+
/**
* virDomainGraphicsDefHasOpenGL:
* @def: domain definition
bool
virDomainDefHasManagedPR(const virDomainDef *def);
+bool
+virDomainDefHasVFIOHostdev(const virDomainDef *def);
+
bool
virDomainGraphicsDefHasOpenGL(const virDomainDef *def);
virDomainDefHasMemoryHotplug;
virDomainDefHasUSB;
virDomainDefHasVcpusOffline;
+virDomainDefHasVFIOHostdev;
virDomainDefLifecycleActionAllowed;
virDomainDefMaybeAddController;
virDomainDefMaybeAddInput;
bool includeVFIO = false;
char **tmpPaths = NULL;
int *tmpPerms = NULL;
- size_t i, tmpNpaths = 0;
+ size_t tmpNpaths = 0;
int perm = 0;
*npaths = 0;
perm = VIR_CGROUP_DEVICE_RW;
if (teardown) {
- size_t nvfios = 0;
- for (i = 0; i < def->nhostdevs; i++) {
- virDomainHostdevDefPtr tmp = def->hostdevs[i];
- if (tmp->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
- tmp->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI &&
- tmp->source.subsys.u.pci.backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO)
- nvfios++;
- }
-
- if (nvfios == 0)
+ if (!virDomainDefHasVFIOHostdev(def))
includeVFIO = true;
} else {
includeVFIO = true;