summaryrefslogtreecommitdiff
path: root/virt
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2021-07-15 00:37:49 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2021-07-30 14:53:02 +0300
commitfa7a549d321a4189677b0cea86e58d9db7977f7b (patch)
tree5622001c608d96e8ac2bf08a022fbab2852391b7 /virt
parent8750f9bbda115f3f79bfe43be85551ee5e12b6ff (diff)
downloadlinux-fa7a549d321a4189677b0cea86e58d9db7977f7b.tar.xz
KVM: x86: accept userspace interrupt only if no event is injected
Once an exception has been injected, any side effects related to the exception (such as setting CR2 or DR6) have been taked place. Therefore, once KVM sets the VM-entry interruption information field or the AMD EVENTINJ field, the next VM-entry must deliver that exception. Pending interrupts are processed after injected exceptions, so in theory it would not be a problem to use KVM_INTERRUPT when an injected exception is present. However, DOSEMU is using run->ready_for_interrupt_injection to detect interrupt windows and then using KVM_SET_SREGS/KVM_SET_REGS to inject the interrupt manually. For this to work, the interrupt window must be delayed after the completion of the previous event injection. Cc: stable@vger.kernel.org Reported-by: Stas Sergeev <stsp2@yandex.ru> Tested-by: Stas Sergeev <stsp2@yandex.ru> Fixes: 71cc849b7093 ("KVM: x86: Fix split-irqchip vs interrupt injection window request") Reviewed-by: Sean Christopherson <seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions