提交 56ba47dd 编写于 作者: A Avi Kivity

KVM: SVM: Defer nmi processing until switch to host state is complete

If we stgi() too soon, nmis can reach the processor even though interrupts
are disabled, catching it in a half-switched state.  Delay the stgi() until
we're done switching.
Signed-off-by: NAvi Kivity <avi@qumranet.com>
上级 70433389
......@@ -1585,10 +1585,6 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
#endif
: "cc", "memory" );
local_irq_disable();
stgi();
if ((svm->vmcb->save.dr7 & 0xff))
load_db_regs(svm->host_db_regs);
......@@ -1605,6 +1601,10 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
reload_tss(vcpu);
local_irq_disable();
stgi();
svm->next_rip = 0;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册