]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - virt/kvm/irq_comm.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / virt / kvm / irq_comm.c
index 8edca9141b787bfb8f7f92788adfc186f4afc0d0..9f614b4e365f77e38ce4b8dec4eeac15148cd5b7 100644 (file)
@@ -114,8 +114,8 @@ int kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src,
        return r;
 }
 
-static int kvm_set_msi(struct kvm_kernel_irq_routing_entry *e,
-                      struct kvm *kvm, int irq_source_id, int level)
+int kvm_set_msi(struct kvm_kernel_irq_routing_entry *e,
+               struct kvm *kvm, int irq_source_id, int level)
 {
        struct kvm_lapic_irq irq;
 
@@ -409,8 +409,9 @@ int kvm_set_irq_routing(struct kvm *kvm,
 
        mutex_lock(&kvm->irq_lock);
        old = kvm->irq_routing;
-       rcu_assign_pointer(kvm->irq_routing, new);
+       kvm_irq_routing_update(kvm, new);
        mutex_unlock(&kvm->irq_lock);
+
        synchronize_rcu();
 
        new = old;