summaryrefslogtreecommitdiffstats
path: root/virt/kvm/arm/vgic/vgic-v4.c
diff options
context:
space:
mode:
authorRadim Krčmář <rkrcmar@redhat.com>2017-12-05 18:02:03 +0100
committerRadim Krčmář <rkrcmar@redhat.com>2017-12-05 18:02:03 +0100
commit609b7002705ae72a6ca45b633b7ff1a09a7a0d86 (patch)
tree515db242be433c34cd45c522dcf295580f864837 /virt/kvm/arm/vgic/vgic-v4.c
parentae64f9bd1d3621b5e60d7363bc20afb46aede215 (diff)
parentfc396e066318c0a02208c1d3f0b62950a7714999 (diff)
downloadlinux-609b7002705ae72a6ca45b633b7ff1a09a7a0d86.tar.bz2
Merge tag 'kvm-arm-fixes-for-v4.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm
KVM/ARM Fixes for v4.15. Fixes: - A number of issues in the vgic discovered using SMATCH - A bit one-off calculation in out stage base address mask (32-bit and 64-bit) - Fixes to single-step debugging instructions that trap for other reasons such as MMMIO aborts - Printing unavailable hyp mode as error - Potential spinlock deadlock in the vgic - Avoid calling vgic vcpu free more than once - Broken bit calculation for big endian systems
Diffstat (limited to 'virt/kvm/arm/vgic/vgic-v4.c')
-rw-r--r--virt/kvm/arm/vgic/vgic-v4.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/virt/kvm/arm/vgic/vgic-v4.c b/virt/kvm/arm/vgic/vgic-v4.c
index 53c324aa44ef..4a37292855bc 100644
--- a/virt/kvm/arm/vgic/vgic-v4.c
+++ b/virt/kvm/arm/vgic/vgic-v4.c
@@ -337,8 +337,10 @@ int kvm_vgic_v4_unset_forwarding(struct kvm *kvm, int virq,
goto out;
WARN_ON(!(irq->hw && irq->host_irq == virq));
- irq->hw = false;
- ret = its_unmap_vlpi(virq);
+ if (irq->hw) {
+ irq->hw = false;
+ ret = its_unmap_vlpi(virq);
+ }
out:
mutex_unlock(&its->its_lock);