diff options
Diffstat (limited to 'arch/powerpc/kvm/book3s_hv.c')
-rw-r--r-- | arch/powerpc/kvm/book3s_hv.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 9754e6815e52..228049786888 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c | |||
@@ -2692,9 +2692,13 @@ static int kvmppc_run_vcpu(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu) | |||
2692 | 2692 | ||
2693 | while (vcpu->arch.state == KVMPPC_VCPU_RUNNABLE && | 2693 | while (vcpu->arch.state == KVMPPC_VCPU_RUNNABLE && |
2694 | (vc->vcore_state == VCORE_RUNNING || | 2694 | (vc->vcore_state == VCORE_RUNNING || |
2695 | vc->vcore_state == VCORE_EXITING)) | 2695 | vc->vcore_state == VCORE_EXITING || |
2696 | vc->vcore_state == VCORE_PIGGYBACK)) | ||
2696 | kvmppc_wait_for_exec(vc, vcpu, TASK_UNINTERRUPTIBLE); | 2697 | kvmppc_wait_for_exec(vc, vcpu, TASK_UNINTERRUPTIBLE); |
2697 | 2698 | ||
2699 | if (vc->vcore_state == VCORE_PREEMPT && vc->runner == NULL) | ||
2700 | kvmppc_vcore_end_preempt(vc); | ||
2701 | |||
2698 | if (vcpu->arch.state == KVMPPC_VCPU_RUNNABLE) { | 2702 | if (vcpu->arch.state == KVMPPC_VCPU_RUNNABLE) { |
2699 | kvmppc_remove_runnable(vc, vcpu); | 2703 | kvmppc_remove_runnable(vc, vcpu); |
2700 | vcpu->stat.signal_exits++; | 2704 | vcpu->stat.signal_exits++; |