summaryrefslogtreecommitdiffstats
path: root/virt
diff options
context:
space:
mode:
authorMarc Zyngier2015-06-05 17:45:29 +0200
committerMarc Zyngier2015-08-12 12:28:25 +0200
commit7a67b4b7e04b30345584c1b76a80db628530bf21 (patch)
treefd49027377ed9b91dfe1ad9768f0e76f3561e4a8 /virt
parentKVM: arm/arm64: vgic: Allow HW irq to be encoded in LR (diff)
downloadkernel-qcow2-linux-7a67b4b7e04b30345584c1b76a80db628530bf21.tar.gz
kernel-qcow2-linux-7a67b4b7e04b30345584c1b76a80db628530bf21.tar.xz
kernel-qcow2-linux-7a67b4b7e04b30345584c1b76a80db628530bf21.zip
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 <christoffer.dall@linaro.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'virt')
-rw-r--r--virt/kvm/arm/vgic.c2
1 files changed, 1 insertions, 1 deletions
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);
}
/**