• Jan Kiszka's avatar
    KVM: nVMX: Fix conditions for interrupt injection · e8457c67
    Jan Kiszka authored
    
    
    If we are entering guest mode, we do not want L0 to interrupt this
    vmentry with all its side effects on the vmcs. Therefore, injection
    shall be disallowed during L1->L2 transitions, as in the previous
    version. However, this check is conceptually independent of
    nested_exit_on_intr, so decouple it.
    
    If L1 traps external interrupts, we can kick the guest from L2 to L1,
    also just like the previous code worked. But we no longer need to
    consider L1's idt_vectoring_info_field. It will always be empty at this
    point. Instead, if L2 has pending events, those are now found in the
    architectural queues and will, thus, prevent vmx_interrupt_allowed from
    being called at all.
    Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
    e8457c67