]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - virt/kvm/kvm_main.c
KVM: Use common function for VCPU lookup by id
[karo-tx-linux.git] / virt / kvm / kvm_main.c
index 484079efea5b89d7d8533804255a0ababe6ad0af..9649a42ee990ecbc7bd354d5426173a1ddc934e7 100644 (file)
@@ -1164,15 +1164,15 @@ struct kvm_memory_slot *kvm_vcpu_gfn_to_memslot(struct kvm_vcpu *vcpu, gfn_t gfn
        return __gfn_to_memslot(kvm_vcpu_memslots(vcpu), gfn);
 }
 
-int kvm_is_visible_gfn(struct kvm *kvm, gfn_t gfn)
+bool kvm_is_visible_gfn(struct kvm *kvm, gfn_t gfn)
 {
        struct kvm_memory_slot *memslot = gfn_to_memslot(kvm, gfn);
 
        if (!memslot || memslot->id >= KVM_USER_MEM_SLOTS ||
              memslot->flags & KVM_MEMSLOT_INVALID)
-               return 0;
+               return false;
 
-       return 1;
+       return true;
 }
 EXPORT_SYMBOL_GPL(kvm_is_visible_gfn);
 
@@ -2257,7 +2257,7 @@ static int create_vcpu_fd(struct kvm_vcpu *vcpu)
 static int kvm_vm_ioctl_create_vcpu(struct kvm *kvm, u32 id)
 {
        int r;
-       struct kvm_vcpu *vcpu, *v;
+       struct kvm_vcpu *vcpu;
 
        if (id >= KVM_MAX_VCPUS)
                return -EINVAL;
@@ -2281,12 +2281,10 @@ static int kvm_vm_ioctl_create_vcpu(struct kvm *kvm, u32 id)
                r = -EINVAL;
                goto unlock_vcpu_destroy;
        }
-
-       kvm_for_each_vcpu(r, v, kvm)
-               if (v->vcpu_id == id) {
-                       r = -EEXIST;
-                       goto unlock_vcpu_destroy;
-               }
+       if (kvm_get_vcpu_by_id(kvm, id)) {
+               r = -EEXIST;
+               goto unlock_vcpu_destroy;
+       }
 
        BUG_ON(kvm->vcpus[atomic_read(&kvm->online_vcpus)]);