linux/arch
Paolo Bonzini fa7a549d32 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: 71cc849b70 ("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>
2021-07-30 07:53:02 -04:00
..
alpha Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
arc Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
arm ARM: SoC fixes for v5.14 2021-07-17 15:58:24 -07:00
arm64 KVM/arm64 fixes for 5.14, take #1 2021-07-19 10:05:40 -04:00
csky Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
h8300 Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
hexagon Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
ia64 Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
m68k Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
microblaze Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
mips Merge tag 'kvm-s390-master-5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD 2021-07-14 12:14:27 -04:00
nds32 Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
nios2 Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
openrisc Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
parisc Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
powerpc Merge tag 'kvm-s390-master-5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD 2021-07-14 12:14:27 -04:00
riscv Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
s390 KVM: s390: restore old debugfs names 2021-07-27 16:59:00 -04:00
sh Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
sparc Locking fixes: 2021-07-11 11:06:09 -07:00
um Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
x86 KVM: x86: accept userspace interrupt only if no event is injected 2021-07-30 07:53:02 -04:00
xtensa Kbuild updates for v5.14 2021-07-10 11:01:38 -07:00
.gitignore
Kconfig Kconfig: Introduce ARCH_WANTS_NO_INSTR and CC_HAS_NO_PROFILE_FN_ATTR 2021-06-22 11:07:18 -07:00