[libvirt] [PATCH v2 5/6] qemu: refactor mdev validation method signatures

Boris Fiuczynski fiuczy at linux.ibm.com
Tue Aug 13 15:40:29 UTC 2019


Refactoring the method signatures in preparation for
checking boot index of the mediated devices.

Signed-off-by: Boris Fiuczynski <fiuczy at linux.ibm.com>
Reviewed-by: Marc Hartmayer <mhartmay at linux.ibm.com>
---
 src/qemu/qemu_domain.c | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 9a9b6676e3..7331d93868 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -5158,10 +5158,13 @@ qemuDomainDeviceDefValidateNetwork(const virDomainNetDef *net)
 
 
 static int
-qemuDomainMdevDefVFIOPCIValidate(const virDomainHostdevSubsysMediatedDev *dev,
+qemuDomainMdevDefVFIOPCIValidate(const virDomainHostdevDef *hostdev,
                                  const virDomainDef *def,
                                  virQEMUCapsPtr qemuCaps)
 {
+    const virDomainHostdevSubsysMediatedDev *dev;
+
+    dev = &hostdev->source.subsys.u.mdev;
     if (dev->display == VIR_TRISTATE_SWITCH_ABSENT)
         return 0;
 
@@ -5194,17 +5197,18 @@ qemuDomainMdevDefVFIOPCIValidate(const virDomainHostdevSubsysMediatedDev *dev,
 
 
 static int
-qemuDomainMdevDefVFIOAPValidate(const virDomainDef *def)
+qemuDomainMdevDefVFIOAPValidate(const virDomainHostdevDef *hostdev ATTRIBUTE_UNUSED,
+                                const virDomainDef *def)
 {
     size_t i;
     bool vfioap_found = false;
 
     /* VFIO-AP is restricted to a single mediated device only */
     for (i = 0; i < def->nhostdevs; i++) {
-        virDomainHostdevDefPtr hostdev = def->hostdevs[i];
+        virDomainHostdevDefPtr hdev = def->hostdevs[i];
 
-        if (virHostdevIsMdevDevice(hostdev) &&
-            hostdev->source.subsys.u.mdev.model == VIR_MDEV_MODEL_TYPE_VFIO_AP) {
+        if (virHostdevIsMdevDevice(hdev) &&
+            hdev->source.subsys.u.mdev.model == VIR_MDEV_MODEL_TYPE_VFIO_AP) {
             if (vfioap_found) {
                 virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                                _("Only one hostdev of model vfio-ap is "
@@ -5220,15 +5224,18 @@ qemuDomainMdevDefVFIOAPValidate(const virDomainDef *def)
 
 
 static int
-qemuDomainMdevDefValidate(const virDomainHostdevSubsysMediatedDev *mdevsrc,
+qemuDomainMdevDefValidate(const virDomainHostdevDef *hostdev,
                           const virDomainDef *def,
                           virQEMUCapsPtr qemuCaps)
 {
+    const virDomainHostdevSubsysMediatedDev *mdevsrc;
+
+    mdevsrc = &hostdev->source.subsys.u.mdev;
     switch ((virMediatedDeviceModelType) mdevsrc->model) {
     case VIR_MDEV_MODEL_TYPE_VFIO_PCI:
-        return qemuDomainMdevDefVFIOPCIValidate(mdevsrc, def, qemuCaps);
+        return qemuDomainMdevDefVFIOPCIValidate(hostdev, def, qemuCaps);
     case VIR_MDEV_MODEL_TYPE_VFIO_AP:
-        return qemuDomainMdevDefVFIOAPValidate(def);
+        return qemuDomainMdevDefVFIOAPValidate(hostdev, def);
     case VIR_MDEV_MODEL_TYPE_VFIO_CCW:
         break;
     case VIR_MDEV_MODEL_TYPE_LAST:
@@ -5247,8 +5254,6 @@ qemuDomainDeviceDefValidateHostdev(const virDomainHostdevDef *hostdev,
                                    const virDomainDef *def,
                                    virQEMUCapsPtr qemuCaps)
 {
-    const virDomainHostdevSubsysMediatedDev *mdevsrc;
-
     /* forbid capabilities mode hostdev in this kind of hypervisor */
     if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_CAPABILITIES) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
@@ -5279,8 +5284,7 @@ qemuDomainDeviceDefValidateHostdev(const virDomainHostdevDef *hostdev,
                                  "supported by mediated devices"));
                 return -1;
             }
-            mdevsrc = &hostdev->source.subsys.u.mdev;
-            return qemuDomainMdevDefValidate(mdevsrc, def, qemuCaps);
+            return qemuDomainMdevDefValidate(hostdev, def, qemuCaps);
         case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST:
         default:
             virReportEnumRangeError(virDomainHostdevSubsysType,
-- 
2.17.0




More information about the libvir-list mailing list