KVM: switch irq injection/acking data structures to irq_lock
[pandora-kernel.git] / arch / x86 / kvm / lapic.c
index a23f42e..44f20cd 100644 (file)
@@ -424,7 +424,9 @@ static void apic_set_eoi(struct kvm_lapic *apic)
                trigger_mode = IOAPIC_LEVEL_TRIG;
        else
                trigger_mode = IOAPIC_EDGE_TRIG;
+       mutex_lock(&apic->vcpu->kvm->irq_lock);
        kvm_ioapic_update_eoi(apic->vcpu->kvm, vector, trigger_mode);
+       mutex_unlock(&apic->vcpu->kvm->irq_lock);
 }
 
 static void apic_send_ipi(struct kvm_lapic *apic)
@@ -448,7 +450,9 @@ static void apic_send_ipi(struct kvm_lapic *apic)
                   irq.trig_mode, irq.level, irq.dest_mode, irq.delivery_mode,
                   irq.vector);
 
+       mutex_lock(&apic->vcpu->kvm->irq_lock);
        kvm_irq_delivery_to_apic(apic->vcpu->kvm, apic, &irq);
+       mutex_unlock(&apic->vcpu->kvm->irq_lock);
 }
 
 static u32 apic_get_tmcct(struct kvm_lapic *apic)