@@ -662,6 +662,7 @@ again:
goto vcpu_run_fail;
srcu_read_unlock(&vcpu->kvm->srcu, idx);
+ atomic_set(&vcpu->guest_mode, 1);
kvm_guest_enter();
/*
@@ -683,6 +684,7 @@ again:
*/
barrier();
kvm_guest_exit();
+ atomic_set(&vcpu->guest_mode, 0);
preempt_enable();
idx = srcu_read_lock(&vcpu->kvm->srcu);
@@ -153,7 +153,8 @@ static bool make_all_cpus_request(struct kvm *kvm, unsigned int req)
if (kvm_make_check_request(req, vcpu))
continue;
cpu = vcpu->cpu;
- if (cpus != NULL && cpu != -1 && cpu != me)
+ if (cpus != NULL && cpu != -1 && cpu != me &&
+ atomic_read(&vcpu->guest_mode))
cpumask_set_cpu(cpu, cpus);
}
if (unlikely(cpus == NULL))