• Joerg Roedel's avatar
    KVM: SVM: Make sure KERNEL_GS_BASE is valid when loading gs_index · 893a5ab6
    Joerg Roedel authored
    The gs_index loading code uses the swapgs instruction to
    switch to the user gs_base temporarily. This is unsave in an
    lightweight exit-path in KVM on AMD because the
    KERNEL_GS_BASE MSR is switches lazily. An NMI happening in
    the critical path of load_gs_index may use the wrong GS_BASE
    value then leading to unpredictable behavior, e.g. a
    triple-fault.
    
    This patch fixes the issue by making sure that load_gs_index
    is called only with a valid KERNEL_GS_BASE value loaded in
    KVM.
    Signed-off-by: default avatarJoerg Roedel <joerg.roedel@amd.com>
    Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
    893a5ab6
svm.c 100 KB