[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH v4 07/12] conf: Introduce parser, formatter for uid and fid





在 2018/8/27 下午1:48, Yi Min Zhao 写道:
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index a6e143dc33..d437c432e3 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -5716,6 +5716,27 @@ qemuDomainDeviceDefValidateGraphics(const virDomainGraphicsDef *graphics,
  }
+static int
+qemuDomainZPCIAddressDefValidate(virDomainDeviceDef *dev,
+                                 virQEMUCapsPtr qemuCaps)
+{
+    virDomainDeviceInfoPtr info = virDomainDeviceGetInfo(dev);
+
+    if (!info || (info->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI))
+        return 0;
+
+    if (!virZPCIDeviceAddressIsEmpty(&info->addr.pci.zpci) &&
+        !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_ZPCI)) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                       "%s",
+                       _("This QEMU binary doesn't support zPCI."));
+        return -1;
+    }
+
+    return 0;
+}
+
+
  static int
  qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
                              const virDomainDef *def,
@@ -5729,6 +5750,10 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
                                              def->emulator)))
          return -1;
+ ret = qemuDomainZPCIAddressDefValidate((virDomainDeviceDef *)dev, qemuCaps);
+    if (ret < 0)
+        goto out;
+
      switch ((virDomainDeviceType)dev->type) {
      case VIR_DOMAIN_DEVICE_NET:
          ret = qemuDomainDeviceDefValidateNetwork(dev->data.net);
@@ -5804,6 +5829,7 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
          break;
      }
+ out:
      virObjectUnref(qemuCaps);
      return ret;
  }
I think this should be separated into single patch. Right?


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]