diff options
Diffstat (limited to 'arch/x86/kvm/x86.c')
| -rw-r--r-- | arch/x86/kvm/x86.c | 9 | 
1 files changed, 3 insertions, 6 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 4044ce0bf7c..185a2b823a2 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -6336,13 +6336,11 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm,  		if (npages && !old.rmap) {  			unsigned long userspace_addr; -			down_write(¤t->mm->mmap_sem); -			userspace_addr = do_mmap(NULL, 0, +			userspace_addr = vm_mmap(NULL, 0,  						 npages * PAGE_SIZE,  						 PROT_READ | PROT_WRITE,  						 map_flags,  						 0); -			up_write(¤t->mm->mmap_sem);  			if (IS_ERR((void *)userspace_addr))  				return PTR_ERR((void *)userspace_addr); @@ -6366,10 +6364,8 @@ void kvm_arch_commit_memory_region(struct kvm *kvm,  	if (!user_alloc && !old.user_alloc && old.rmap && !npages) {  		int ret; -		down_write(¤t->mm->mmap_sem); -		ret = do_munmap(current->mm, old.userspace_addr, +		ret = vm_munmap(old.userspace_addr,  				old.npages * PAGE_SIZE); -		up_write(¤t->mm->mmap_sem);  		if (ret < 0)  			printk(KERN_WARNING  			       "kvm_vm_ioctl_set_memory_region: " @@ -6585,6 +6581,7 @@ void kvm_arch_async_page_present(struct kvm_vcpu *vcpu,  		kvm_inject_page_fault(vcpu, &fault);  	}  	vcpu->arch.apf.halted = false; +	vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE;  }  bool kvm_arch_can_inject_async_page_present(struct kvm_vcpu *vcpu)  |