diff options
| -rw-r--r-- | arch/x86/kvm/x86.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 02363e37d4a6..a2cd0997343c 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
| @@ -8394,10 +8394,13 @@ static inline bool kvm_vcpu_has_events(struct kvm_vcpu *vcpu) | |||
| 8394 | if (vcpu->arch.pv.pv_unhalted) | 8394 | if (vcpu->arch.pv.pv_unhalted) |
| 8395 | return true; | 8395 | return true; |
| 8396 | 8396 | ||
| 8397 | if (atomic_read(&vcpu->arch.nmi_queued)) | 8397 | if (kvm_test_request(KVM_REQ_NMI, vcpu) || |
| 8398 | (vcpu->arch.nmi_pending && | ||
| 8399 | kvm_x86_ops->nmi_allowed(vcpu))) | ||
| 8398 | return true; | 8400 | return true; |
| 8399 | 8401 | ||
| 8400 | if (kvm_test_request(KVM_REQ_SMI, vcpu)) | 8402 | if (kvm_test_request(KVM_REQ_SMI, vcpu) || |
| 8403 | (vcpu->arch.smi_pending && !is_smm(vcpu))) | ||
| 8401 | return true; | 8404 | return true; |
| 8402 | 8405 | ||
| 8403 | if (kvm_arch_interrupt_allowed(vcpu) && | 8406 | if (kvm_arch_interrupt_allowed(vcpu) && |
