diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2020-04-23 20:08:58 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2020-05-13 18:14:49 +0200 |
commit | c300ab9f08df9e4b9f39d53a0691e234330df124 (patch) | |
tree | 33c488983f3ba30112bca45e589103df4b00c1b6 /kernel/exit.c | |
parent | KVM: VMX: Use vmx_get_rflags() to query RFLAGS in vmx_interrupt_blocked() (diff) | |
download | linux-c300ab9f08df9e4b9f39d53a0691e234330df124.tar.xz linux-c300ab9f08df9e4b9f39d53a0691e234330df124.zip |
KVM: x86: Replace late check_nested_events() hack with more precise fix
Add an argument to interrupt_allowed and nmi_allowed, to checking if
interrupt injection is blocked. Use the hook to handle the case where
an interrupt arrives between check_nested_events() and the injection
logic. Drop the retry of check_nested_events() that hack-a-fixed the
same condition.
Blocking injection is also a bit of a hack, e.g. KVM should do exiting
and non-exiting interrupt processing in a single pass, but it's a more
precise hack. The old comment is also misleading, e.g. KVM_REQ_EVENT is
purely an optimization, setting it on every run loop (which KVM doesn't
do) should not affect functionality, only performance.
Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Message-Id: <20200423022550.15113-13-sean.j.christopherson@intel.com>
[Extend to SVM, add SMI and NMI. Even though NMI and SMI cannot come
asynchronously right now, making the fix generic is easy and removes a
special case. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'kernel/exit.c')
0 files changed, 0 insertions, 0 deletions