X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=virt%2Fkvm%2Firq_comm.c;h=9f614b4e365f77e38ce4b8dec4eeac15148cd5b7;hb=d33a6291c1c577ff2272edab7416a0f7308e1cef;hp=8edca9141b787bfb8f7f92788adfc186f4afc0d0;hpb=12462f2df4d10ea4f6d55b9d438ff788badec3f0;p=cascardo%2Flinux.git diff --git a/virt/kvm/irq_comm.c b/virt/kvm/irq_comm.c index 8edca9141b78..9f614b4e365f 100644 --- a/virt/kvm/irq_comm.c +++ b/virt/kvm/irq_comm.c @@ -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;