On Fri, 4 Mar 2022 at 17:46, Eric Auger <[email protected]> wrote: > > In TCG mode, if gic-version=max we always select GICv3 even if > CONFIG_ARM_GIC_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_GIC_TCG unset. > > Signed-off-by: Eric Auger <[email protected]> > Reviewed-by: Andrew Jones <[email protected]> > Fixes: a8a5546798c3 ("hw/intc/arm_gicv3: Introduce CONFIG_ARM_GIC_TCG Kconfig > selector") > > --- > > v1 -> v2: > - added Drew's R-b > - dropped PATCH 2/2 for the time being (requires more discussions) > --- > hw/arm/virt.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > index 46bf7ceddf..f29779c951 100644 > --- a/hw/arm/virt.c > +++ b/hw/arm/virt.c > @@ -1852,7 +1852,11 @@ static void finalize_gic_version(VirtMachineState *vms) > vms->gic_version = VIRT_GIC_VERSION_2; > break; > case VIRT_GIC_VERSION_MAX: > +#ifdef CONFIG_ARM_GIC_TCG > vms->gic_version = VIRT_GIC_VERSION_3; > +#else > + vms->gic_version = VIRT_GIC_VERSION_2; > +#endif > break; > case VIRT_GIC_VERSION_HOST: > error_report("gic-version=host requires KVM");
This doesn't look right, because the correct condition for "should 'max' be 2 or 3" is "do we have a GICv2 or a GICv3 compiled in", which is nothing to do with "is the GIC a TCG GIC or the KVM GIC". Indeed at this point in the code we know we're dealing with TCG, so the right response to "we don't have a TCG GIC" is "give up entirely". I think fundamentally CONFIG_ARM_GIC_TCG is either misnamed or selecting the wrong files to compile. thanks -- PMM
