aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kvm')
-rw-r--r--arch/x86/kvm/x86.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index b78f89d3424..be6d54929fa 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -6376,13 +6376,11 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm,
6376 if (npages && !old.rmap) { 6376 if (npages && !old.rmap) {
6377 unsigned long userspace_addr; 6377 unsigned long userspace_addr;
6378 6378
6379 down_write(&current->mm->mmap_sem); 6379 userspace_addr = vm_mmap(NULL, 0,
6380 userspace_addr = do_mmap(NULL, 0,
6381 npages * PAGE_SIZE, 6380 npages * PAGE_SIZE,
6382 PROT_READ | PROT_WRITE, 6381 PROT_READ | PROT_WRITE,
6383 map_flags, 6382 map_flags,
6384 0); 6383 0);
6385 up_write(&current->mm->mmap_sem);
6386 6384
6387 if (IS_ERR((void *)userspace_addr)) 6385 if (IS_ERR((void *)userspace_addr))
6388 return PTR_ERR((void *)userspace_addr); 6386 return PTR_ERR((void *)userspace_addr);
@@ -6406,10 +6404,8 @@ void kvm_arch_commit_memory_region(struct kvm *kvm,
6406 if (!user_alloc && !old.user_alloc && old.rmap && !npages) { 6404 if (!user_alloc && !old.user_alloc && old.rmap && !npages) {
6407 int ret; 6405 int ret;
6408 6406
6409 down_write(&current->mm->mmap_sem); 6407 ret = vm_munmap(old.userspace_addr,
6410 ret = do_munmap(current->mm, old.userspace_addr,
6411 old.npages * PAGE_SIZE); 6408 old.npages * PAGE_SIZE);
6412 up_write(&current->mm->mmap_sem);
6413 if (ret < 0) 6409 if (ret < 0)
6414 printk(KERN_WARNING 6410 printk(KERN_WARNING
6415 "kvm_vm_ioctl_set_memory_region: " 6411 "kvm_vm_ioctl_set_memory_region: "
@@ -6613,6 +6609,7 @@ void kvm_arch_async_page_present(struct kvm_vcpu *vcpu,
6613 kvm_inject_page_fault(vcpu, &fault); 6609 kvm_inject_page_fault(vcpu, &fault);
6614 } 6610 }
6615 vcpu->arch.apf.halted = false; 6611 vcpu->arch.apf.halted = false;
6612 vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE;
6616} 6613}
6617 6614
6618bool kvm_arch_can_inject_async_page_present(struct kvm_vcpu *vcpu) 6615bool kvm_arch_can_inject_async_page_present(struct kvm_vcpu *vcpu)