diff options
author | Ladi Prosek <lprosek@redhat.com> | 2017-10-17 16:02:39 +0200 |
---|---|---|
committer | Radim Krčmář <rkrcmar@redhat.com> | 2017-10-18 21:21:22 +0200 |
commit | cc3d967f7e32ceeb9b78dc962126ebcf1a2b24b2 (patch) | |
tree | b5a6a7dc1f6c9c181be3bab24d05b5066b423ce0 /arch/x86/include/asm | |
parent | KVM: x86: extend usage of RET_MMIO_PF_* constants (diff) | |
download | linux-cc3d967f7e32ceeb9b78dc962126ebcf1a2b24b2.tar.xz linux-cc3d967f7e32ceeb9b78dc962126ebcf1a2b24b2.zip |
KVM: SVM: detect opening of SMI window using STGI intercept
Commit 05cade71cf3b ("KVM: nSVM: fix SMI injection in guest mode") made
KVM mask SMI if GIF=0 but it didn't do anything to unmask it when GIF is
enabled.
The issue manifests for me as a significantly longer boot time of Windows
guests when running with SMM-enabled OVMF.
This commit fixes it by intercepting STGI instead of requesting immediate
exit if the reason why SMM was masked is GIF.
Fixes: 05cade71cf3b ("KVM: nSVM: fix SMI injection in guest mode")
Signed-off-by: Ladi Prosek <lprosek@redhat.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
Diffstat (limited to 'arch/x86/include/asm')
-rw-r--r-- | arch/x86/include/asm/kvm_host.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index 8700b845f780..7233445a20bd 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h @@ -1065,6 +1065,7 @@ struct kvm_x86_ops { int (*smi_allowed)(struct kvm_vcpu *vcpu); int (*pre_enter_smm)(struct kvm_vcpu *vcpu, char *smstate); int (*pre_leave_smm)(struct kvm_vcpu *vcpu, u64 smbase); + int (*enable_smi_window)(struct kvm_vcpu *vcpu); }; struct kvm_arch_async_pf { |