GICv2m and GICits is not always needed. Signed-off-by: Xu Yandong <xuyando...@huawei.com> --- hw/arm/virt.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 9031fd6757..32c3977e32 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -605,6 +605,15 @@ static void create_v2m(VirtMachineState *vms) fdt_add_v2m_gic_node(vms); } +static void gic_set_msi_interrupt(VirtMachineState *vms) +{ + if (vms->gic_version == 3 && vms->its) { + create_its(vms); + } else if (vms->gic_version == 2) { + create_v2m(vms); + } +} + static void create_gic(VirtMachineState *vms) { MachineState *ms = MACHINE(vms); @@ -719,12 +728,7 @@ static void create_gic(VirtMachineState *vms) } fdt_add_gic_node(vms); - - if (type == 3 && vms->its) { - create_its(vms); - } else if (type == 2) { - create_v2m(vms); - } + gic_set_msi_interrupt(vms); } static void create_uart(const VirtMachineState *vms, int uart, -- 2.18.1