[PATCH v2 2/2] KVM: arm64: Workaround firmware wrongly advertising GICv2-on-v3 compatibility
Marc Zyngier
maz at kernel.org
Fri Jan 15 09:15:20 EST 2021
On 2021-01-15 14:08, Ard Biesheuvel wrote:
> On Fri, 15 Jan 2021 at 15:03, Marc Zyngier <maz at kernel.org> wrote:
[...]
>> diff --git a/arch/arm64/kvm/vgic/vgic-v3.c
>> b/arch/arm64/kvm/vgic/vgic-v3.c
>> index 8e7bf3151057..67b27b47312b 100644
>> --- a/arch/arm64/kvm/vgic/vgic-v3.c
>> +++ b/arch/arm64/kvm/vgic/vgic-v3.c
>> @@ -584,8 +584,10 @@ early_param("kvm-arm.vgic_v4_enable",
>> early_gicv4_enable);
>> int vgic_v3_probe(const struct gic_kvm_info *info)
>> {
>> u64 ich_vtr_el2 = kvm_call_hyp_ret(__vgic_v3_get_gic_config);
>> + bool has_v2;
>> int ret;
>>
>> + has_v2 = ich_vtr_el2 >> 63;
>> ich_vtr_el2 = (u32)ich_vtr_el2;
>>
>> /*
>> @@ -605,13 +607,15 @@ int vgic_v3_probe(const struct gic_kvm_info
>> *info)
>> gicv4_enable ? "en" : "dis");
>> }
>>
>> + kvm_vgic_global_state.vcpu_base = 0;
>> +
>> if (!info->vcpu.start) {
>> kvm_info("GICv3: no GICV resource entry\n");
>> - kvm_vgic_global_state.vcpu_base = 0;
>> + } else if (!has_v2) {
>> + pr_warn("CPU interface incapable of MMIO access\n");
>
> Could we include FW_BUG here to stress that this is a firmware problem?
Absolutely! That's what it now looks like:
[ 2.648452] kvm [1]: IPA Size Limit: 40 bits
[ 2.649259] [Firmware Bug]: CPU interface incapable of MMIO access
[ 2.649620] kvm [1]: disabling GICv2 emulation
[ 2.650227] kvm [1]: GIC system register CPU interface enabled
[ 2.652004] kvm [1]: vgic interrupt IRQ9
[ 2.655623] kvm [1]: VHE mode initialized successfully
Updated version pushed out.
Thanks,
M.
--
Jazz is not dead. It just smells funny...
More information about the linux-arm-kernel
mailing list