]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - rpmsg/rpmsg.git/blobdiff - virt/kvm/arm/vgic/vgic-v3.c
KVM: arm/arm64: vgic: Do not use spin_lock_irqsave/restore with irq disabled
[rpmsg/rpmsg.git] / virt / kvm / arm / vgic / vgic-v3.c
index 530b8491c89265ae800f4f0c10f4e8de43413384..9c0dd234ebe8112f601e81083de436d5547b5c55 100644 (file)
@@ -46,7 +46,8 @@ void vgic_v3_fold_lr_state(struct kvm_vcpu *vcpu)
        struct vgic_v3_cpu_if *cpuif = &vgic_cpu->vgic_v3;
        u32 model = vcpu->kvm->arch.vgic.vgic_model;
        int lr;
-       unsigned long flags;
+
+       DEBUG_SPINLOCK_BUG_ON(!irqs_disabled());
 
        cpuif->vgic_hcr &= ~ICH_HCR_UIE;
 
@@ -75,7 +76,7 @@ void vgic_v3_fold_lr_state(struct kvm_vcpu *vcpu)
                if (!irq)       /* An LPI could have been unmapped. */
                        continue;
 
-               spin_lock_irqsave(&irq->irq_lock, flags);
+               spin_lock(&irq->irq_lock);
 
                /* Always preserve the active bit */
                irq->active = !!(val & ICH_LR_ACTIVE_BIT);
@@ -118,7 +119,7 @@ void vgic_v3_fold_lr_state(struct kvm_vcpu *vcpu)
                                vgic_irq_set_phys_active(irq, false);
                }
 
-               spin_unlock_irqrestore(&irq->irq_lock, flags);
+               spin_unlock(&irq->irq_lock);
                vgic_put_irq(vcpu->kvm, irq);
        }