summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2015-06-05 16:45:29 +0100
committerMarc Zyngier <marc.zyngier@arm.com>2015-08-12 11:28:25 +0100
commit7a67b4b7e04b30345584c1b76a80db628530bf21 (patch)
treefd49027377ed9b91dfe1ad9768f0e76f3561e4a8
parentfb182cf84568cc33ab41121bc8cc999f7aacbd47 (diff)
downloadop-kernel-dev-7a67b4b7e04b30345584c1b76a80db628530bf21.zip
op-kernel-dev-7a67b4b7e04b30345584c1b76a80db628530bf21.tar.gz
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>
-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 bc40137..5bd1695 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);
}
/**
OpenPOWER on IntegriCloud