{
switch (iommu->model) {
case VIR_DOMAIN_IOMMU_MODEL_SMMUV3:
+ case VIR_DOMAIN_IOMMU_MODEL_VIRTIO:
if (iommu->intremap != VIR_TRISTATE_SWITCH_ABSENT ||
iommu->caching_mode != VIR_TRISTATE_SWITCH_ABSENT ||
iommu->eim != VIR_TRISTATE_SWITCH_ABSENT ||
virDomainIOMMUModelTypeToString(iommu->model));
return -1;
}
- G_GNUC_FALLTHROUGH;
+ break;
+ case VIR_DOMAIN_IOMMU_MODEL_INTEL:
+ case VIR_DOMAIN_IOMMU_MODEL_LAST:
+ break;
+ }
+
+ switch (iommu->model) {
+ case VIR_DOMAIN_IOMMU_MODEL_SMMUV3:
case VIR_DOMAIN_IOMMU_MODEL_INTEL:
if (iommu->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) {
virReportError(VIR_ERR_XML_ERROR,
break;
case VIR_DOMAIN_IOMMU_MODEL_VIRTIO:
- if (iommu->intremap != VIR_TRISTATE_SWITCH_ABSENT ||
- iommu->caching_mode != VIR_TRISTATE_SWITCH_ABSENT ||
- iommu->eim != VIR_TRISTATE_SWITCH_ABSENT ||
- iommu->iotlb != VIR_TRISTATE_SWITCH_ABSENT ||
- iommu->aw_bits != 0) {
- virReportError(VIR_ERR_XML_ERROR,
- _("iommu model '%s' doesn't support additional attributes"),
- virDomainIOMMUModelTypeToString(iommu->model));
- return -1;
- }
- break;
-
case VIR_DOMAIN_IOMMU_MODEL_LAST:
break;
}