aboutsummaryrefslogtreecommitdiffstats
path: root/virt
diff options
context:
space:
mode:
Diffstat (limited to 'virt')
-rw-r--r--virt/kvm/kvm_main.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 32fbf8006969..b2e12893e3f4 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -169,6 +169,7 @@ static struct kvm *kvm_create_vm(void)
169 kvm_io_bus_init(&kvm->pio_bus); 169 kvm_io_bus_init(&kvm->pio_bus);
170 mutex_init(&kvm->lock); 170 mutex_init(&kvm->lock);
171 kvm_io_bus_init(&kvm->mmio_bus); 171 kvm_io_bus_init(&kvm->mmio_bus);
172 init_rwsem(&kvm->slots_lock);
172 spin_lock(&kvm_lock); 173 spin_lock(&kvm_lock);
173 list_add(&kvm->vm_list, &vm_list); 174 list_add(&kvm->vm_list, &vm_list);
174 spin_unlock(&kvm_lock); 175 spin_unlock(&kvm_lock);
@@ -339,9 +340,9 @@ int kvm_set_memory_region(struct kvm *kvm,
339{ 340{
340 int r; 341 int r;
341 342
342 down_write(&current->mm->mmap_sem); 343 down_write(&kvm->slots_lock);
343 r = __kvm_set_memory_region(kvm, mem, user_alloc); 344 r = __kvm_set_memory_region(kvm, mem, user_alloc);
344 up_write(&current->mm->mmap_sem); 345 up_write(&kvm->slots_lock);
345 return r; 346 return r;
346} 347}
347EXPORT_SYMBOL_GPL(kvm_set_memory_region); 348EXPORT_SYMBOL_GPL(kvm_set_memory_region);