• Ladi Prosek's avatar
    KVM: SVM: hide TF/RF flags used by NMI singlestep · 9b611747
    Ladi Prosek authored
    These flags are used internally by SVM so it's cleaner to not leak
    them to callers of svm_get_rflags. This is similar to how the TF
    flag is handled on KVM_GUESTDBG_SINGLESTEP by kvm_get_rflags and
    kvm_set_rflags.
    
    Without this change, the flags may propagate from host VMCB to nested
    VMCB or vice versa while singlestepping over a nested VM enter/exit,
    and then get stuck in inappropriate places.
    
    Example: NMI singlestepping is enabled while running L1 guest. The
    instruction to step over is VMRUN and nested vmrun emulation stashes
    rflags to hsave->save.rflags. Then if singlestepping is disabled
    while still in L2, TF/RF will be cleared from the nested VMCB but the
    next nested VM exit will restore them from hsave->save.rflags and
    cause an unexpected DB exception.
    Signed-off-by: default avatarLadi Prosek <lprosek@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    9b611747
svm.c 139 KB