diff options
Diffstat (limited to 'virt')
| -rw-r--r-- | virt/kvm/kvm_main.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index cd34f73513d3..ef9a121bbd13 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c | |||
| @@ -1089,12 +1089,11 @@ static int kvm_vm_ioctl_create_vcpu(struct kvm *kvm, int n) | |||
| 1089 | 1089 | ||
| 1090 | r = kvm_arch_vcpu_setup(vcpu); | 1090 | r = kvm_arch_vcpu_setup(vcpu); |
| 1091 | if (r) | 1091 | if (r) |
| 1092 | goto vcpu_destroy; | 1092 | return r; |
| 1093 | 1093 | ||
| 1094 | mutex_lock(&kvm->lock); | 1094 | mutex_lock(&kvm->lock); |
| 1095 | if (kvm->vcpus[n]) { | 1095 | if (kvm->vcpus[n]) { |
| 1096 | r = -EEXIST; | 1096 | r = -EEXIST; |
| 1097 | mutex_unlock(&kvm->lock); | ||
| 1098 | goto vcpu_destroy; | 1097 | goto vcpu_destroy; |
| 1099 | } | 1098 | } |
| 1100 | kvm->vcpus[n] = vcpu; | 1099 | kvm->vcpus[n] = vcpu; |
| @@ -1110,8 +1109,8 @@ static int kvm_vm_ioctl_create_vcpu(struct kvm *kvm, int n) | |||
| 1110 | unlink: | 1109 | unlink: |
| 1111 | mutex_lock(&kvm->lock); | 1110 | mutex_lock(&kvm->lock); |
| 1112 | kvm->vcpus[n] = NULL; | 1111 | kvm->vcpus[n] = NULL; |
| 1113 | mutex_unlock(&kvm->lock); | ||
| 1114 | vcpu_destroy: | 1112 | vcpu_destroy: |
| 1113 | mutex_unlock(&kvm->lock); | ||
| 1115 | kvm_arch_vcpu_destroy(vcpu); | 1114 | kvm_arch_vcpu_destroy(vcpu); |
| 1116 | return r; | 1115 | return r; |
| 1117 | } | 1116 | } |
