KVM: x86: check for interrupts before deciding whether to exit the fast path
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 20 Oct 2021 10:27:36 +0000 (06:27 -0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 21 Oct 2021 07:35:41 +0000 (03:35 -0400)
commitde7cd3f6761f49bef044ec49493d88737a70f1a6
tree0144fab51e141b247376fe56d6a3bb26e8beb1bb
parent9f1ee7b169afbd10c3ad254220d1b37beb5798aa
KVM: x86: check for interrupts before deciding whether to exit the fast path

The kvm_x86_sync_pir_to_irr callback can sometimes set KVM_REQ_EVENT.
If that happens exactly at the time that an exit is handled as
EXIT_FASTPATH_REENTER_GUEST, vcpu_enter_guest will go incorrectly
through the loop that calls kvm_x86_run, instead of processing
the request promptly.

Fixes: 379a3c8ee444 ("KVM: VMX: Optimize posted-interrupt delivery for timer fastpath")
Cc: stable@vger.kernel.org
Reviewed-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c