• Haozhong Zhang's avatar
    KVM: nVMX: remove incorrect vpid check in nested invvpid emulation · b2467e74
    Haozhong Zhang authored
    This patch removes the vpid check when emulating nested invvpid
    instruction of type all-contexts invalidation. The existing code is
    incorrect because:
     (1) According to Intel SDM Vol 3, Section "INVVPID - Invalidate
         Translations Based on VPID", invvpid instruction does not check
         vpid in the invvpid descriptor when its type is all-contexts
         invalidation.
     (2) According to the same document, invvpid of type all-contexts
         invalidation does not require there is an active VMCS, so/and
         get_vmcs12() in the existing code may result in a NULL-pointer
         dereference. In practice, it can crash both KVM itself and L1
         hypervisors that use invvpid (e.g. Xen).
    Signed-off-by: default avatarHaozhong Zhang <haozhong.zhang@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    b2467e74
vmx.c 306 KB