diff options
-rw-r--r-- | kvm.c | 8 | ||||
-rw-r--r-- | kvm_x86.c | 8 |
2 files changed, 4 insertions, 12 deletions
@@ -995,14 +995,10 @@ skip_lpage: } slots->memslots[mem->slot] = new; + mutex_enter(&kvmp->memslots_lock); old_memslots = kvmp->memslots; -#ifdef XXX - rcu_assign_pointer(kvmp->memslots, slots); - synchronize_srcu_expedited(&kvmp->srcu); -#else - XXX_KVM_SYNC_PROBE; kvmp->memslots = slots; -#endif + mutex_exit(&kvmp->memslots_lock); kvm_arch_commit_memory_region(kvmp, mem, old, user_alloc); @@ -2314,14 +2314,10 @@ kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, struct kvm_dirty_log *log) memcpy(slots, kvm->memslots, sizeof (struct kvm_memslots)); slots->memslots[log->slot].dirty_bitmap = dirty_bitmap; + mutex_enter(&kvm->memslots_lock); old_slots = kvm->memslots; -#ifdef XXX - rcu_assign_pointer(kvm->memslots, slots); - kvm_synchronize_srcu_expedited(&kvm->srcu); -#else kvm->memslots = slots; - XXX_KVM_SYNC_PROBE; -#endif + mutex_exit(&kvm->memslots_lock); dirty_bitmap = old_slots->memslots[log->slot].dirty_bitmap; kmem_free(old_slots, sizeof (struct kvm_memslots)); } |