Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd15d205 authored by Christoffer Dall's avatar Christoffer Dall
Browse files

KVM: arm/arm64: Fixup userspace irqchip static key optimization



When I introduced a static key to avoid work in the critical path for
userspace irqchips which is very rarely used, I accidentally messed up
my logic and used && where I should have used ||, because the point was
to short-circuit the evaluation in case userspace irqchips weren't even
in use.

This fixes an issue when running in-kernel irqchip VMs alongside
userspace irqchip VMs.

Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
Fixes: c44c232ee2d3 ("KVM: arm/arm64: Avoid work when userspace iqchips are not used")
Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
parent f1d7231c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -286,7 +286,7 @@ static void kvm_timer_update_irq(struct kvm_vcpu *vcpu, bool new_level,
	trace_kvm_timer_update_irq(vcpu->vcpu_id, timer_ctx->irq.irq,
				   timer_ctx->irq.level);

	if (!static_branch_unlikely(&userspace_irqchip_in_use) &&
	if (!static_branch_unlikely(&userspace_irqchip_in_use) ||
	    likely(irqchip_in_kernel(vcpu->kvm))) {
		ret = kvm_vgic_inject_irq(vcpu->kvm, vcpu->vcpu_id,
					  timer_ctx->irq.irq,