EL3 extension is not always needed. Signed-off-by: Xu Yandong <xuyando...@huawei.com> --- hw/arm/virt.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c index afaf143888..087616190e 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -627,6 +627,14 @@ static void gic_set_msi_interrupt(VirtMachineState *vms) } } +static void qdev_gic_set_secure_bit(VirtMachineState *vms) +{ + if (!kvm_irqchip_in_kernel()) { + qdev_prop_set_bit(vms->gic, "has-security-extensions", + vms->secure); + } +} + static void qdev_gic_set_virt_bit(VirtMachineState *vms) { if (vms->gic_version != 3 && !kvm_irqchip_in_kernel()) { @@ -681,9 +689,6 @@ static void create_gic(VirtMachineState *vms) * interrupts; there are always 32 of the former (mandated by GIC spec). */ qdev_prop_set_uint32(vms->gic, "num-irq", NUM_IRQS + 32); - if (!kvm_irqchip_in_kernel()) { - qdev_prop_set_bit(vms->gic, "has-security-extensions", vms->secure); - } if (type == 3) { uint32_t redist0_capacity = @@ -704,6 +709,7 @@ static void create_gic(VirtMachineState *vms) MIN(smp_cpus - redist0_count, redist1_capacity)); } } + qdev_gic_set_secure_bit(vms); qdev_gic_set_virt_bit(vms); qdev_init_nofail(vms->gic); gicbusdev = SYS_BUS_DEVICE(vms->gic); -- 2.18.1