virHostdevIsVFIODevice() and virDomainDefHasVFIOHostdev() are only ever
called from the QEMU driver, and in the case of the QEMU driver, any
PCI hostdev by definition uses VFIO, so really all these callers only
need to know if the device is a PCI hostdev.
(It turned out that the less specific virHostdevIsPCIDevice() already
existed in hypervisor/virhostdev.c, so I had to remove one of them;
since conf is a lower level directory than hypervisor, and the
function is called from conf, keeping the copy in hypervisor would
have required moving its caller (virDomainDefHasPCIHostdev()) into
hypervisor as well, so I just removed the copy in hypervisor.)
Signed-off-by: Laine Stump <laine(a)redhat.com>
Reviewed-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/conf/domain_conf.c | 13 ++++++-------
src/conf/domain_conf.h | 4 ++--
src/hypervisor/virhostdev.c | 8 --------
src/hypervisor/virhostdev.h | 2 --
src/libvirt_private.syms | 5 ++---
src/qemu/qemu_domain.c | 6 +++---
src/qemu/qemu_hostdev.c | 2 +-
src/qemu/qemu_hotplug.c | 2 +-
8 files changed, 15 insertions(+), 27 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index b3c7b50f97..0f137543e0 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -30653,12 +30653,12 @@ virDomainDefHasNVMeDisk(const virDomainDef *def)
bool
-virDomainDefHasVFIOHostdev(const virDomainDef *def)
+virDomainDefHasPCIHostdev(const virDomainDef *def)
{
size_t i;
for (i = 0; i < def->nhostdevs; i++) {
- if (virHostdevIsVFIODevice(def->hostdevs[i]))
+ if (virHostdevIsPCIDevice(def->hostdevs[i]))
return true;
}
@@ -30929,17 +30929,16 @@ virHostdevIsMdevDevice(const virDomainHostdevDef *hostdev)
/**
- * virHostdevIsVFIODevice:
+ * virHostdevIsPCIDevice:
* @hostdev: host device to check
*
- * Returns true if @hostdev is a PCI device with VFIO backend, false otherwise.
+ * Returns true if @hostdev is a PCI device, false otherwise.
*/
bool
-virHostdevIsVFIODevice(const virDomainHostdevDef *hostdev)
+virHostdevIsPCIDevice(const virDomainHostdevDef *hostdev)
{
return hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
- hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI &&
- hostdev->source.subsys.u.pci.driver.name ==
VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO;
+ hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
}
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index ee8bcbc6b3..7dd5bdbe56 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -4418,7 +4418,7 @@ bool
virDomainDefHasNVMeDisk(const virDomainDef *def);
bool
-virDomainDefHasVFIOHostdev(const virDomainDef *def);
+virDomainDefHasPCIHostdev(const virDomainDef *def);
bool
virDomainDefHasMdevHostdev(const virDomainDef *def);
@@ -4476,7 +4476,7 @@ bool
virHostdevIsMdevDevice(const virDomainHostdevDef *hostdev)
ATTRIBUTE_NONNULL(1);
bool
-virHostdevIsVFIODevice(const virDomainHostdevDef *hostdev)
+virHostdevIsPCIDevice(const virDomainHostdevDef *hostdev)
ATTRIBUTE_NONNULL(1);
int
diff --git a/src/hypervisor/virhostdev.c b/src/hypervisor/virhostdev.c
index 27b0acdc91..40f8a4bc2c 100644
--- a/src/hypervisor/virhostdev.c
+++ b/src/hypervisor/virhostdev.c
@@ -344,14 +344,6 @@ virHostdevNetDevice(virDomainHostdevDef *hostdev,
}
-bool
-virHostdevIsPCIDevice(const virDomainHostdevDef *hostdev)
-{
- return hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
- hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
-}
-
-
static bool
virHostdevIsPCINetDevice(const virDomainHostdevDef *hostdev)
{
diff --git a/src/hypervisor/virhostdev.h b/src/hypervisor/virhostdev.h
index 642d753ffb..22ec3068db 100644
--- a/src/hypervisor/virhostdev.h
+++ b/src/hypervisor/virhostdev.h
@@ -232,5 +232,3 @@ virHostdevUpdateActiveNVMeDevices(virHostdevManager *hostdev_mgr,
const char *dom_name,
virDomainDiskDef **disks,
size_t ndisks);
-
-bool virHostdevIsPCIDevice(const virDomainHostdevDef *hostdev);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 002a3986d1..cccefe5a81 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -340,11 +340,11 @@ virDomainDefHasMemoryHotplug;
virDomainDefHasNVMeDisk;
virDomainDefHasOldStyleROUEFI;
virDomainDefHasOldStyleUEFI;
+virDomainDefHasPCIHostdev;
virDomainDefHasSpiceGraphics;
virDomainDefHasUSB;
virDomainDefHasVcpusOffline;
virDomainDefHasVDPANet;
-virDomainDefHasVFIOHostdev;
virDomainDefLifecycleActionAllowed;
virDomainDefMaybeAddController;
virDomainDefMaybeAddInput;
@@ -777,8 +777,8 @@ virDomainEventWatchdogNewFromObj;
virDomainQemuMonitorEventNew;
virDomainQemuMonitorEventStateRegisterID;
virHostdevIsMdevDevice;
+virHostdevIsPCIDevice;
virHostdevIsSCSIDevice;
-virHostdevIsVFIODevice;
# conf/domain_nwfilter.h
@@ -1641,7 +1641,6 @@ virCloseCallbacksDomainRunForConn;
# hypervisor/virhostdev.h
virHostdevFindUSBDevice;
-virHostdevIsPCIDevice;
virHostdevManagerGetDefault;
virHostdevPCINodeDeviceDetach;
virHostdevPCINodeDeviceReAttach;
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 1aeeb74503..9357ce8d62 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -9343,7 +9343,7 @@ getPPC64MemLockLimitBytes(virDomainDef *def)
for (i = 0; i < def->nhostdevs; i++) {
virDomainHostdevDef *dev = def->hostdevs[i];
- if (virHostdevIsVFIODevice(dev)) {
+ if (virHostdevIsPCIDevice(dev)) {
pciAddr = &dev->source.subsys.u.pci.addr;
if (virPCIDeviceAddressIsValid(pciAddr, false)) {
@@ -9448,7 +9448,7 @@ qemuDomainGetNumVFIOHostdevs(const virDomainDef *def)
int n = 0;
for (i = 0; i < def->nhostdevs; i++) {
- if (virHostdevIsVFIODevice(def->hostdevs[i]) ||
+ if (virHostdevIsPCIDevice(def->hostdevs[i]) ||
virHostdevIsMdevDevice(def->hostdevs[i]))
n++;
}
@@ -10489,7 +10489,7 @@ qemuDomainSupportsVideoVga(const virDomainVideoDef *video,
bool
qemuDomainNeedsVFIO(const virDomainDef *def)
{
- return virDomainDefHasVFIOHostdev(def) ||
+ return virDomainDefHasPCIHostdev(def) ||
virDomainDefHasMdevHostdev(def) ||
virDomainDefHasNVMeDisk(def);
}
diff --git a/src/qemu/qemu_hostdev.c b/src/qemu/qemu_hostdev.c
index 4992c23ee0..15b543dbff 100644
--- a/src/qemu/qemu_hostdev.c
+++ b/src/qemu/qemu_hostdev.c
@@ -133,7 +133,7 @@ qemuHostdevUpdateActiveDomainDevices(virQEMUDriver *driver,
bool
qemuHostdevNeedsVFIO(const virDomainHostdevDef *hostdev)
{
- return virHostdevIsVFIODevice(hostdev) ||
+ return virHostdevIsPCIDevice(hostdev) ||
virHostdevIsMdevDevice(hostdev);
}
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 75e1d39b60..0e45bd53e1 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -4738,7 +4738,7 @@ qemuDomainRemoveHostDevice(virQEMUDriver *driver,
virDomainAuditHostdev(vm, hostdev, "detach", true);
- if (!virHostdevIsVFIODevice(hostdev) &&
+ if (!virHostdevIsPCIDevice(hostdev) &&
qemuSecurityRestoreHostdevLabel(driver, vm, hostdev) < 0)
VIR_WARN("Failed to restore host device labelling");
--
2.43.0