Re: [PATCH v3] KVM: x86: accept userspace interrupt only if no event is injected

From: stsp
Date: Fri Aug 06 2021 - 13:59:16 EST


28.07.2021 00:09, Paolo Bonzini пишет:
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@xxxxxxxxxxxxxxx
Reported-by: Stas Sergeev <stsp2@xxxxxxxxx>
Tested-by: Stas Sergeev <stsp2@xxxxxxxxx>
Acked-by: stsp2@xxxxxxxxx