KVM: async_pf: kill the unnecessary use_mm/unuse_mm async_pf_execute()
authorOleg Nesterov <oleg@redhat.com>
Mon, 21 Apr 2014 13:25:58 +0000 (15:25 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 28 Apr 2014 15:24:25 +0000 (17:24 +0200)
async_pf_execute() has no reasons to adopt apf->mm, gup(current, mm)
should work just fine even if current has another or NULL ->mm.

Recently kvm_async_page_present_sync() was added insedie the "use_mm"
section, but it seems that it doesn't need current->mm too.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: Andrea Arcangeli <aarcange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
virt/kvm/async_pf.c

index 10df100c4514e856d1ca5509f87f118e37726f57..0ced4f31bc65d97ea3a298ec78ee094d86f63646 100644 (file)
@@ -80,12 +80,10 @@ static void async_pf_execute(struct work_struct *work)
 
        might_sleep();
 
-       use_mm(mm);
        down_read(&mm->mmap_sem);
        get_user_pages(current, mm, addr, 1, 1, 0, NULL, NULL);
        up_read(&mm->mmap_sem);
        kvm_async_page_present_sync(vcpu, apf);
-       unuse_mm(mm);
 
        spin_lock(&vcpu->async_pf.lock);
        list_add_tail(&apf->link, &vcpu->async_pf.done);