]> git.proxmox.com Git - mirror_qemu.git/commitdiff
hw/arm/virt: Fix gic-version=max when CONFIG_ARM_GICV3_TCG is unset
authorEric Auger <eric.auger@redhat.com>
Tue, 8 Mar 2022 18:24:52 +0000 (19:24 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 18 Mar 2022 10:55:15 +0000 (10:55 +0000)
In TCG mode, if gic-version=max we always select GICv3 even if
CONFIG_ARM_GICV3_TCG is unset. We shall rather select GICv2.
This also brings the benefit of fixing qos tests errors for tests
using gic-version=max with CONFIG_ARM_GICV3_TCG unset.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Message-id: 20220308182452.223473-3-eric.auger@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/arm/virt.c

index 46a42502bc555e62195dd0d4dfda054d51f3993a..d2e5ecd234a91e2fe5796a490e39d87bf39d99fe 100644 (file)
@@ -1852,7 +1852,12 @@ static void finalize_gic_version(VirtMachineState *vms)
         vms->gic_version = VIRT_GIC_VERSION_2;
         break;
     case VIRT_GIC_VERSION_MAX:
-        vms->gic_version = VIRT_GIC_VERSION_3;
+        if (module_object_class_by_name("arm-gicv3")) {
+            /* CONFIG_ARM_GICV3_TCG was set */
+            vms->gic_version = VIRT_GIC_VERSION_3;
+        } else {
+            vms->gic_version = VIRT_GIC_VERSION_2;
+        }
         break;
     case VIRT_GIC_VERSION_HOST:
         error_report("gic-version=host requires KVM");