The create_gic() function needs to know whether the GIC
has a TCG ITS attached, as it should set the "sysmem" and
"has-lpi" properties of the GICv3 only in that case.
Currently it does this with
 (!kvm_irqchip_in_kernel() && vms->tcg_its)
which implicitly relies on knowing that the only case
where we aren't using a KVM GIC and we don't have an ITS
is where we suppressed the TCG ITS because of the
board-version-compatibility no_tcg_its setting.

We can avoid direct use of vms->tcg_its now that we
can identify what MSI controller we are using from the
vms->msi_controller field.

This means that the only use of vms->tcg_its is in
the logic in finalize_msi_controller().

Signed-off-by: Peter Maydell <[email protected]>
---
 hw/arm/virt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index b55297455f..a231aef268 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -851,7 +851,7 @@ static void create_gic(VirtMachineState *vms, MemoryRegion 
*mem)
                             redist_region_count);
 
         if (!kvm_irqchip_in_kernel()) {
-            if (vms->tcg_its) {
+            if (vms->msi_controller == VIRT_MSI_CTRL_ITS) {
                 object_property_set_link(OBJECT(vms->gic), "sysmem",
                                          OBJECT(mem), &error_fatal);
                 qdev_prop_set_bit(vms->gic, "has-lpi", true);
-- 
2.47.3


Reply via email to