summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorJean-Philippe Brucker <jean-philippe@linaro.org>2021-12-10 17:04:11 +0000
committerPeter Maydell <peter.maydell@linaro.org>2021-12-15 10:35:26 +0000
commit80d28ccdb99de4f256f03977471dbf6544bb0df8 (patch)
tree60335a0b5870509e223f35e063b1c6bc470abc0d /hw
parent092cba0350f073d465492c39210a006e5cb18f63 (diff)
downloadqemu-80d28ccdb99de4f256f03977471dbf6544bb0df8.zip
hw/arm/virt: Reject instantiation of multiple IOMMUs
We do not support instantiating multiple IOMMUs. Before adding a virtio-iommu, check that no other IOMMU is present. This will detect both "iommu=smmuv3" machine parameter and another virtio-iommu instance. Fixes: 70e89132c9 ("hw/arm/virt: Add the virtio-iommu device tree mappings") Reviewed-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> Message-id: 20211210170415.583179-4-jean-philippe@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw')
-rw-r--r--hw/arm/virt.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index e621cada99..41c9808a3f 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -2493,6 +2493,11 @@ static void virt_machine_device_pre_plug_cb(HotplugHandler *hotplug_dev,
hwaddr db_start = 0, db_end = 0;
char *resv_prop_str;
+ if (vms->iommu != VIRT_IOMMU_NONE) {
+ error_setg(errp, "virt machine does not support multiple IOMMUs");
+ return;
+ }
+
switch (vms->msi_controller) {
case VIRT_MSI_CTRL_NONE:
return;