diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2015-10-13 10:19:35 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2015-10-13 18:29:41 +0200 |
commit | 73917739334c6509833b0403b81d4a04a8784bdf (patch) | |
tree | 4b689f3a9b557f7158a6f1bc1ccc56e7266d2112 | |
parent | 5d9bc648b94dd719022343b8675e6c4381f0c45f (diff) | |
download | linux-73917739334c6509833b0403b81d4a04a8784bdf.tar.gz linux-73917739334c6509833b0403b81d4a04a8784bdf.tar.bz2 linux-73917739334c6509833b0403b81d4a04a8784bdf.zip |
KVM: x86: fix SMI to halted VCPU
An SMI to a halted VCPU must wake it up, hence a VCPU with a pending
SMI must be considered runnable.
Fixes: 64d6067057d9658acb8675afcfba549abdb7fc16
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r-- | arch/x86/kvm/x86.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index b69ef58e51ee..6e03546faf2e 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -7781,6 +7781,9 @@ static inline bool kvm_vcpu_has_events(struct kvm_vcpu *vcpu) if (atomic_read(&vcpu->arch.nmi_queued)) return true; + if (test_bit(KVM_REQ_SMI, &vcpu->requests)) + return true; + if (kvm_arch_interrupt_allowed(vcpu) && kvm_cpu_has_interrupt(vcpu)) return true; |