• Maxim Levitsky's avatar
    KVM: x86: smm: preserve interrupt shadow in SMRAM · fb28875f
    Maxim Levitsky authored
    When #SMI is asserted, the CPU can be in interrupt shadow due to sti or
    mov ss.
    
    It is not mandatory in  Intel/AMD prm to have the #SMI blocked during the
    shadow, and on top of that, since neither SVM nor VMX has true support
    for SMI window, waiting for one instruction would mean single stepping
    the guest.
    
    Instead, allow #SMI in this case, but both reset the interrupt window and
    stash its value in SMRAM to restore it on exit from SMM.
    
    This fixes rare failures seen mostly on windows guests on VMX, when #SMI
    falls on the sti instruction which mainfest in VM entry failure due
    to EFLAGS.IF not being set, but STI interrupt window still being set
    in the VMCS.
    Signed-off-by: default avatarMaxim Levitsky <mlevitsk@redhat.com>
    Message-Id: <20221025124741.228045-24-mlevitsk@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    fb28875f
smm.h 3.65 KB