aboutsummaryrefslogtreecommitdiff
path: root/hw/arm/virt.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/arm/virt.c')
-rw-r--r--hw/arm/virt.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index e55cafa014..a94bc5ddae 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -1554,11 +1554,18 @@ static void finalize_gic_version(VirtMachineState *vms)
vms->gic_version = VIRT_GIC_VERSION_3;
}
} else {
- vms->gic_version = kvm_arm_vgic_probe();
- if (!vms->gic_version) {
+ int probe_bitmap = kvm_arm_vgic_probe();
+
+ if (!probe_bitmap) {
error_report(
"Unable to determine GIC version supported by host");
exit(1);
+ } else {
+ if (probe_bitmap & KVM_ARM_VGIC_V3) {
+ vms->gic_version = VIRT_GIC_VERSION_3;
+ } else {
+ vms->gic_version = VIRT_GIC_VERSION_2;
+ }
}
}
} else if (vms->gic_version == VIRT_GIC_VERSION_NOSEL) {