]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Rework qemuDomainDeviceDefValidateAddress()
authorAndrea Bolognani <abologna@redhat.com>
Wed, 12 Jun 2019 11:05:24 +0000 (13:05 +0200)
committerAndrea Bolognani <abologna@redhat.com>
Thu, 20 Jun 2019 10:49:58 +0000 (12:49 +0200)
Introduce a switch() statement and prepare for validating
more address types than just PCI.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_domain.c

index 8262107311e56400f9742cb344310a7e4fa741f4..e594efb21798d8f0b4896605f0a29527e131be9b 100644 (file)
@@ -6194,9 +6194,35 @@ qemuDomainDeviceDefValidateAddress(const virDomainDeviceDef *dev,
     if (!(info = virDomainDeviceGetInfo((virDomainDeviceDef *)dev)))
         return 0;
 
-    if (info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI)
+    switch ((virDomainDeviceAddressType) info->type) {
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI:
         return qemuDomainDeviceDefValidateZPCIAddress(info, qemuCaps);
 
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE:
+        /* Address validation might happen before we have had a chance to
+         * automatically assign addresses to devices for which the user
+         * didn't specify one themselves */
+        break;
+
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE:
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_SERIAL:
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCID:
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB:
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO:
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390:
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW:
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO:
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_ISA:
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DIMM:
+        /* No validation for these address types yet */
+        break;
+
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST:
+    default:
+        virReportEnumRangeError(virDomainDeviceAddressType, info->type);
+        return -1;
+    }
+
     return 0;
 }