|
@@ -632,27 +632,22 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
|
|
|
if (unlikely(!kvm_vcpu_initialized(vcpu)))
|
|
|
return -ENOEXEC;
|
|
|
|
|
|
- vcpu_load(vcpu);
|
|
|
-
|
|
|
ret = kvm_vcpu_first_run_init(vcpu);
|
|
|
if (ret)
|
|
|
- goto out;
|
|
|
+ return ret;
|
|
|
|
|
|
if (run->exit_reason == KVM_EXIT_MMIO) {
|
|
|
ret = kvm_handle_mmio_return(vcpu, vcpu->run);
|
|
|
if (ret)
|
|
|
- goto out;
|
|
|
- if (kvm_arm_handle_step_debug(vcpu, vcpu->run)) {
|
|
|
- ret = 0;
|
|
|
- goto out;
|
|
|
- }
|
|
|
-
|
|
|
+ return ret;
|
|
|
+ if (kvm_arm_handle_step_debug(vcpu, vcpu->run))
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
- if (run->immediate_exit) {
|
|
|
- ret = -EINTR;
|
|
|
- goto out;
|
|
|
- }
|
|
|
+ if (run->immediate_exit)
|
|
|
+ return -EINTR;
|
|
|
+
|
|
|
+ vcpu_load(vcpu);
|
|
|
|
|
|
kvm_sigset_activate(vcpu);
|
|
|
|
|
@@ -811,7 +806,6 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
|
|
|
|
|
|
kvm_sigset_deactivate(vcpu);
|
|
|
|
|
|
-out:
|
|
|
vcpu_put(vcpu);
|
|
|
return ret;
|
|
|
}
|