summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2022-02-11 12:10:57 -0500
committerPaolo Bonzini <pbonzini@redhat.com>2022-02-11 12:10:57 -0500
commited343aa85718f039f5c3121aff099085902c97f0 (patch)
treed33694025e991e2d20765b4bbde48e0aa8096174
parentfcb732d8f8cf6084f8480015ad41d25fb023a4dd (diff)
parent5bfa685e62e9ba93c303a9a8db646c7228b9b570 (diff)
Merge tag 'kvmarm-fixes-5.17-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
KVM/arm64 fixes for 5.17, take #3 - Fix pending state read of a HW interrupt
-rw-r--r--arch/arm64/kvm/vgic/vgic-mmio.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm64/kvm/vgic/vgic-mmio.c b/arch/arm64/kvm/vgic/vgic-mmio.c
index 7068da080799..49837d3a3ef5 100644
--- a/arch/arm64/kvm/vgic/vgic-mmio.c
+++ b/arch/arm64/kvm/vgic/vgic-mmio.c
@@ -248,6 +248,8 @@ unsigned long vgic_mmio_read_pending(struct kvm_vcpu *vcpu,
IRQCHIP_STATE_PENDING,
&val);
WARN_RATELIMIT(err, "IRQ %d", irq->host_irq);
+ } else if (vgic_irq_is_mapped_level(irq)) {
+ val = vgic_get_phys_line_level(irq);
} else {
val = irq_is_pending(irq);
}