From: Marc Zyngier Date: Fri, 5 Jun 2015 15:45:29 +0000 (+0100) Subject: KVM: arm/arm64: vgic: Relax vgic_can_sample_irq for edge IRQs X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=7a67b4b7e04b30345584c1b76a80db628530bf21;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git KVM: arm/arm64: vgic: Relax vgic_can_sample_irq for edge IRQs We only set the irq_queued flag for level interrupts, meaning that "!vgic_irq_is_queued(vcpu, irq)" is a good enough predicate for all interrupts. This will allow us to inject edge HW interrupts, for which the state ACTIVE+PENDING is not allowed. Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier --- diff --git a/virt/kvm/arm/vgic.c b/virt/kvm/arm/vgic.c index bc40137a022d..5bd1695845a3 100644 --- a/virt/kvm/arm/vgic.c +++ b/virt/kvm/arm/vgic.c @@ -375,7 +375,7 @@ void vgic_cpu_irq_clear(struct kvm_vcpu *vcpu, int irq) static bool vgic_can_sample_irq(struct kvm_vcpu *vcpu, int irq) { - return vgic_irq_is_edge(vcpu, irq) || !vgic_irq_is_queued(vcpu, irq); + return !vgic_irq_is_queued(vcpu, irq); } /**