forked from Minki/linux
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: Avi Kivity <avi@qumranet.com>
This commit is contained in:
parent
70433389cc
commit
56ba47ddbd
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user