• Nadav Amit's avatar
    KVM: vmx: VMXOFF emulation in vm86 should cause #UD · 0f54a321
    Nadav Amit authored
    Unlike VMCALL, the instructions VMXOFF, VMLAUNCH and VMRESUME should cause a UD
    exception in real-mode or vm86.  However, the emulator considers all these
    instructions the same for the matter of mode checks, and emulation upon exit
    due to #UD exception.
    
    As a result, the hypervisor behaves incorrectly on vm86 mode. VMXOFF, VMLAUNCH
    or VMRESUME cause on vm86 exit due to #UD. The hypervisor then emulates these
    instruction and inject #GP to the guest instead of #UD.
    
    This patch creates a new group for these instructions and mark only VMCALL as
    an instruction which can be emulated.
    Signed-off-by: default avatarNadav Amit <namit@cs.technion.ac.il>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    0f54a321
emulate.c 126 KB