Merge branch 'kvm-updates/3.0' of git://git.kernel.org/pub/scm/virt/kvm/kvm
* 'kvm-updates/3.0' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: Initialize kvm before registering the mmu notifier KVM: x86: use proper port value when checking io instruction permission KVM: add missing void __user * cast to access_ok() call
This commit is contained in:
@@ -467,12 +467,8 @@ static struct kvm *kvm_create_vm(void)
|
||||
if (!kvm->buses[i])
|
||||
goto out_err;
|
||||
}
|
||||
|
||||
spin_lock_init(&kvm->mmu_lock);
|
||||
|
||||
r = kvm_init_mmu_notifier(kvm);
|
||||
if (r)
|
||||
goto out_err;
|
||||
|
||||
kvm->mm = current->mm;
|
||||
atomic_inc(&kvm->mm->mm_count);
|
||||
kvm_eventfd_init(kvm);
|
||||
@@ -480,6 +476,11 @@ static struct kvm *kvm_create_vm(void)
|
||||
mutex_init(&kvm->irq_lock);
|
||||
mutex_init(&kvm->slots_lock);
|
||||
atomic_set(&kvm->users_count, 1);
|
||||
|
||||
r = kvm_init_mmu_notifier(kvm);
|
||||
if (r)
|
||||
goto out_err;
|
||||
|
||||
raw_spin_lock(&kvm_lock);
|
||||
list_add(&kvm->vm_list, &vm_list);
|
||||
raw_spin_unlock(&kvm_lock);
|
||||
@@ -651,7 +652,9 @@ int __kvm_set_memory_region(struct kvm *kvm,
|
||||
/* We can read the guest memory with __xxx_user() later on. */
|
||||
if (user_alloc &&
|
||||
((mem->userspace_addr & (PAGE_SIZE - 1)) ||
|
||||
!access_ok(VERIFY_WRITE, mem->userspace_addr, mem->memory_size)))
|
||||
!access_ok(VERIFY_WRITE,
|
||||
(void __user *)(unsigned long)mem->userspace_addr,
|
||||
mem->memory_size)))
|
||||
goto out;
|
||||
if (mem->slot >= KVM_MEMORY_SLOTS + KVM_PRIVATE_MEM_SLOTS)
|
||||
goto out;
|
||||
|
||||
Reference in New Issue
Block a user