]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
KVM: arm64: gic: Check for vGICv3 when clearing TWI
authorSascha Bischoff <Sascha.Bischoff@arm.com>
Tue, 6 Jan 2026 16:52:10 +0000 (16:52 +0000)
committerOliver Upton <oupton@kernel.org>
Thu, 8 Jan 2026 20:49:21 +0000 (12:49 -0800)
Explicitly check for the vgic being v3 when disabling TWI. Failure to
check this can result in using the wrong view of the vgic CPU IF union
causing undesirable/unexpected behaviour.

Signed-off-by: Sascha Bischoff <sascha.bischoff@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://msgid.link/20260106165154.3321753-1-sascha.bischoff@arm.com
Signed-off-by: Oliver Upton <oupton@kernel.org>
arch/arm64/kvm/arm.c

index 4f80da0c0d1de89abc0c0dfd90c8adf318a8c9be..620a465248d1b9b848473162713fa57bfeeb3aa1 100644 (file)
@@ -569,6 +569,7 @@ static bool kvm_vcpu_should_clear_twi(struct kvm_vcpu *vcpu)
                return kvm_wfi_trap_policy == KVM_WFX_NOTRAP;
 
        return single_task_running() &&
+              vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3 &&
               (atomic_read(&vcpu->arch.vgic_cpu.vgic_v3.its_vpe.vlpi_count) ||
                vcpu->kvm->arch.vgic.nassgireq);
 }