summaryrefslogtreecommitdiff
path: root/virt/kvm/arm/vgic/vgic-mmio.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2018-03-19 20:37:35 +0100
committerIngo Molnar <mingo@kernel.org>2018-03-19 20:37:35 +0100
commit134933e55789ece9bca973d3502c7b8f7a9dae86 (patch)
treeb1694310855e43acb5fceb8b2d55ec8cd713ccad /virt/kvm/arm/vgic/vgic-mmio.c
parent24868367cdcac447232ebcb2aa06e1bf91291586 (diff)
parentc698ca5278934c0ae32297a8725ced2e27585d7f (diff)
downloadlwn-134933e55789ece9bca973d3502c7b8f7a9dae86.tar.gz
lwn-134933e55789ece9bca973d3502c7b8f7a9dae86.zip
Merge tag 'v4.16-rc6' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'virt/kvm/arm/vgic/vgic-mmio.c')
-rw-r--r--virt/kvm/arm/vgic/vgic-mmio.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/virt/kvm/arm/vgic/vgic-mmio.c b/virt/kvm/arm/vgic/vgic-mmio.c
index 83d82bd7dc4e..dbe99d635c80 100644
--- a/virt/kvm/arm/vgic/vgic-mmio.c
+++ b/virt/kvm/arm/vgic/vgic-mmio.c
@@ -113,9 +113,12 @@ unsigned long vgic_mmio_read_pending(struct kvm_vcpu *vcpu,
/* Loop over all IRQs affected by this read */
for (i = 0; i < len * 8; i++) {
struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, vcpu, intid + i);
+ unsigned long flags;
+ spin_lock_irqsave(&irq->irq_lock, flags);
if (irq_is_pending(irq))
value |= (1U << i);
+ spin_unlock_irqrestore(&irq->irq_lock, flags);
vgic_put_irq(vcpu->kvm, irq);
}