diff options
author | Robert Mustacchi <rm@joyent.com> | 2011-07-01 16:42:31 -0700 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2011-07-01 16:42:31 -0700 |
commit | fddecad62ba633ec99385fb3b06215a7378294f0 (patch) | |
tree | a749d8fcd75f3ed9236f9606e309bb21af98e07c | |
parent | 82096aeceb97079cf7dde82e6401f526d0fb96ac (diff) | |
download | illumos-kvm-fddecad62ba633ec99385fb3b06215a7378294f0.tar.gz |
HVM-467 cleanup XXX_KVM_SYNC_PROBE in kvm_irq_conn.c
-rw-r--r-- | kvm_irq_comm.c | 50 |
1 files changed, 6 insertions, 44 deletions
diff --git a/kvm_irq_comm.c b/kvm_irq_comm.c index 82dfd4a..250cbd3 100644 --- a/kvm_irq_comm.c +++ b/kvm_irq_comm.c @@ -149,24 +149,15 @@ kvm_set_irq(struct kvm *kvm, int irq_source_id, uint32_t irq, int level) * IOAPIC. So set the bit in both. The guest will ignore * writes to the unused one. */ -#ifdef XXX - rcu_read_lock(); - irq_rt = rcu_dereference(kvm->irq_routing); -#else - XXX_KVM_SYNC_PROBE; + mutex_enter(&kvm->irq_lock); irq_rt = kvm->irq_routing; -#endif if (irq < irq_rt->nr_rt_entries) { for (e = list_head(&irq_rt->map[irq]); e != NULL; e = list_next(&irq_rt->map[irq], e)) { irq_set[i++] = *e; } } -#ifdef XXX - rcu_read_unlock(); -#else - XXX_KVM_SYNC_PROBE; -#endif + mutex_exit(&kvm->irq_lock); while (i--) { int r; @@ -189,13 +180,7 @@ kvm_notify_acked_irq(struct kvm *kvm, unsigned irqchip, unsigned pin) KVM_TRACE2(ack__irq, unsigned int, irqchip, unsigned int, pin); -#ifdef XXX - rcu_read_lock(); - - gsi = rcu_dereference(kvm->irq_routing)->chip[irqchip][pin]; -#else - XXX_KVM_SYNC_PROBE; -#endif + mutex_enter(&kvm->irq_lock); gsi = (kvm->irq_routing)->chip[irqchip][pin]; if (gsi != -1) { @@ -206,11 +191,7 @@ kvm_notify_acked_irq(struct kvm *kvm, unsigned irqchip, unsigned pin) kian->irq_acked(kian); } } -#ifdef XXX - rcu_read_unlock(); -#else - XXX_KVM_SYNC_PROBE; -#endif + mutex_exit(&kvm->irq_lock); } void @@ -308,23 +289,14 @@ kvm_fire_mask_notifiers(struct kvm *kvm, int irq, int mask) { struct kvm_irq_mask_notifier *kimn; -#ifdef XXX - rcu_read_lock(); -#else - XXX_KVM_SYNC_PROBE; -#endif - + mutex_enter(&kvm->irq_lock); for (kimn = list_head(&kvm->mask_notifier_list); kimn != NULL; kimn = list_next(&kvm->mask_notifier_list, kimn)) { if (kimn->irq == irq) kimn->func(kimn, mask); } -#ifdef XXX - rcu_read_unlock(); -#else - XXX_KVM_SYNC_PROBE; -#endif + mutex_exit(&kvm->irq_lock); } static int @@ -463,19 +435,9 @@ kvm_set_irq_routing(struct kvm *kvm, const struct kvm_irq_routing_entry *ue, mutex_enter(&kvm->irq_lock); old = kvm->irq_routing; oldsz = kvm->irq_routing_sz; -#ifdef XXX - rcu_assign_pointer(kvm->irq_routing, new); -#else - XXX_KVM_SYNC_PROBE; kvm->irq_routing = new; kvm->irq_routing_sz = newsz; -#endif mutex_exit(&kvm->irq_lock); -#ifdef XXX - synchronize_rcu(); -#else - XXX_KVM_SYNC_PROBE; -#endif new = old; newsz = oldsz; |