]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
hypervisor: move HostdevNeedsVFIO to hypervisor
authorPraveen K Paladugu <praveenkpaladugu@gmail.com>
Fri, 11 Oct 2024 18:13:02 +0000 (13:13 -0500)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 15 Nov 2024 12:15:12 +0000 (13:15 +0100)
Move HostdevNeedsVFIO method to hypervisor to be reused between qemu
and ch drivers.

Signed-off-by: Praveen K Paladugu <prapal@linux.microsoft.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/hypervisor/virhostdev.c
src/hypervisor/virhostdev.h
src/libvirt_private.syms
src/qemu/qemu_cgroup.c
src/qemu/qemu_hostdev.c
src/qemu/qemu_hostdev.h
src/qemu/qemu_namespace.c

index 185ec2ca50e8b8f4ea50546df84854fd4aa0a251..4b06e74894420faed9e119d7929acbe889c08f48 100644 (file)
@@ -2512,3 +2512,10 @@ virHostdevUpdateActiveNVMeDevices(virHostdevManager *hostdev_mgr,
     }
     goto cleanup;
 }
+
+bool
+virHostdevNeedsVFIO(const virDomainHostdevDef *hostdev)
+{
+    return virHostdevIsPCIDevice(hostdev) ||
+        virHostdevIsMdevDevice(hostdev);
+}
index 22ec3068db86221f29d87e62cd3e049c14623998..b9e6108816b3a899ea35f33ccb61740215ab87f6 100644 (file)
@@ -232,3 +232,6 @@ virHostdevUpdateActiveNVMeDevices(virHostdevManager *hostdev_mgr,
                                   const char *dom_name,
                                   virDomainDiskDef **disks,
                                   size_t ndisks);
+
+bool
+virHostdevNeedsVFIO(const virDomainHostdevDef *hostdev);
index 62c729d7ff0a063e39ec2798517bd6f1c0aa2c2a..6616f96712d3452f64a8a7228d1bcf19807f04d2 100644 (file)
@@ -1674,6 +1674,7 @@ virCloseCallbacksDomainRunForConn;
 # hypervisor/virhostdev.h
 virHostdevFindUSBDevice;
 virHostdevManagerGetDefault;
+virHostdevNeedsVFIO;
 virHostdevPCINodeDeviceDetach;
 virHostdevPCINodeDeviceReAttach;
 virHostdevPCINodeDeviceReset;
index 23b7e6b4e87dc575ef64ada9d9e90df11028e89e..be4b9a38ffae5fe8306cf53644b3016650d137d3 100644 (file)
@@ -32,6 +32,7 @@
 #include "virfile.h"
 #include "virdevmapper.h"
 #include "virglibutil.h"
+#include "virhostdev.h"
 
 #define VIR_FROM_THIS VIR_FROM_QEMU
 
@@ -481,7 +482,7 @@ qemuSetupHostdevCgroup(virDomainObj *vm,
         return -1;
     }
 
-    if (qemuHostdevNeedsVFIO(dev) &&
+    if (virHostdevNeedsVFIO(dev) &&
         qemuCgroupAllowDevicePath(vm, QEMU_DEV_VFIO,
                                   VIR_CGROUP_DEVICE_RW, false) < 0) {
         return -1;
@@ -530,7 +531,7 @@ qemuTeardownHostdevCgroup(virDomainObj *vm,
         return -1;
     }
 
-    if (qemuHostdevNeedsVFIO(dev) &&
+    if (virHostdevNeedsVFIO(dev) &&
         !qemuDomainNeedsVFIO(vm->def) &&
         qemuCgroupDenyDevicePath(vm, QEMU_DEV_VFIO,
                                  VIR_CGROUP_DEVICE_RWM, false) < 0) {
index 15b543dbff108b4174a39b4733260c551f824ce5..f25ccaf1a40abebf13bd47233230759927789c8c 100644 (file)
@@ -130,14 +130,6 @@ qemuHostdevUpdateActiveDomainDevices(virQEMUDriver *driver,
 }
 
 
-bool
-qemuHostdevNeedsVFIO(const virDomainHostdevDef *hostdev)
-{
-    return virHostdevIsPCIDevice(hostdev) ||
-        virHostdevIsMdevDevice(hostdev);
-}
-
-
 bool
 qemuHostdevHostSupportsPassthroughVFIO(void)
 {
index 3e9adc57a9ec9845f4e2b5322066c792c9b1d777..bbf7bb11e782e365d3fa315ca7755539cc836ff6 100644 (file)
@@ -23,8 +23,6 @@
 
 #include "qemu_conf.h"
 
-bool qemuHostdevNeedsVFIO(const virDomainHostdevDef *hostdev);
-
 bool qemuHostdevHostSupportsPassthroughVFIO(void);
 
 int qemuHostdevUpdateActiveNVMeDisks(virQEMUDriver *driver,
index 5d9385afd672b713bc0abbd61daf77f96cd18190..0ebc11552413c3de21999116aff8087776fec5cb 100644 (file)
@@ -339,7 +339,7 @@ qemuDomainSetupHostdev(virDomainObj *vm,
     if (path)
         *paths = g_slist_prepend(*paths, g_steal_pointer(&path));
 
-    if (qemuHostdevNeedsVFIO(hostdev) &&
+    if (virHostdevNeedsVFIO(hostdev) &&
         (!hotplug || !qemuDomainNeedsVFIO(vm->def)))
         *paths = g_slist_prepend(*paths, g_strdup(QEMU_DEV_VFIO));