diff options
author | Oleg Nesterov <oleg@redhat.com> | 2014-04-21 15:26:01 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2014-04-28 13:04:46 +0200 |
commit | 41c22f626254b9dc0376928cae009e73d1b6a49a (patch) | |
tree | 6c3318644f52be8cff8ddc91c12773465a394060 /virt/kvm/kvm_main.c | |
parent | 5c8818b46e067120d33bbb2f610313240d76ba02 (diff) |
KVM: async_pf: mm->mm_users can not pin apf->mm
get_user_pages(mm) is simply wrong if mm->mm_users == 0 and exit_mmap/etc
was already called (or is in progress), mm->mm_count can only pin mm->pgd
and mm_struct itself.
Change kvm_setup_async_pf/async_pf_execute to inc/dec mm->mm_users.
kvm_create_vm/kvm_destroy_vm play with ->mm_count too but this case looks
fine at first glance, it seems that this ->mm is only used to verify that
current->mm == kvm->mm.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'virt/kvm/kvm_main.c')
0 files changed, 0 insertions, 0 deletions