diff --git a/hypervisor/arch/x86/guest/vcpu.c b/hypervisor/arch/x86/guest/vcpu.c index 3aaf1c387..1f61a80e7 100644 --- a/hypervisor/arch/x86/guest/vcpu.c +++ b/hypervisor/arch/x86/guest/vcpu.c @@ -702,7 +702,9 @@ void pause_vcpu(struct acrn_vcpu *vcpu, enum vcpu_state new_state) vcpu->prev_state = vcpu->state; vcpu->state = new_state; - sleep_thread(&vcpu->thread_obj); + if (vcpu->prev_state == VCPU_RUNNING) { + sleep_thread(&vcpu->thread_obj); + } if (pcpu_id != get_pcpu_id()) { while (vcpu->running) { asm_pause();