diff options
Diffstat (limited to 'arch/x86/kvm')
-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 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(¤t->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(¤t->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(¤t->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(¤t->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 | ||
6618 | bool kvm_arch_can_inject_async_page_present(struct kvm_vcpu *vcpu) | 6615 | bool kvm_arch_can_inject_async_page_present(struct kvm_vcpu *vcpu) |