From ad9b36efcdca66597a9eab79322653650b77b5a1 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Wed, 12 Jun 2019 13:05:24 +0200 Subject: [PATCH] qemu: Rework qemuDomainDeviceDefValidateAddress() Introduce a switch() statement and prepare for validating more address types than just PCI. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/qemu/qemu_domain.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 8262107311..e594efb217 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -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; } -- 2.47.2