This commit is contained in:
Stanislav Shwartsman 2010-04-09 15:19:14 +00:00
parent 51b6180b28
commit 6dbafd6f60

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: vmx.cc,v 1.63 2010-04-09 11:34:52 sshwarts Exp $
// $Id: vmx.cc,v 1.64 2010-04-09 15:19:14 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2009-2010 Stanislav Shwartsman
@ -473,8 +473,8 @@ VMX_error_code BX_CPU_C::VMenterLoadCheckVmControls(void)
if (vm->vmexec_ctrls3 & VMX_VM_EXEC_CTRL3_VPID_ENABLE) {
vm->vpid = VMread16(VMCS_16BIT_CONTROL_VPID);
if (vm->vpid != 0) {
BX_ERROR(("VMFAIL: VMCS EXEC CTRL: guest VPID != 0"));
if (vm->vpid == 0) {
BX_ERROR(("VMFAIL: VMCS EXEC CTRL: guest VPID == 0"));
return VMXERR_VMENTRY_INVALID_VM_CONTROL_FIELD;
}
}
@ -1524,6 +1524,11 @@ Bit32u BX_CPU_C::VMenterLoadCheckGuestState(Bit64u *qualification)
BX_CPU_THIS_PTR sregs[segreg] = guest.sregs[segreg];
if (v8086_guest) CPL = 3;
#if BX_SUPPORT_VMX >= 2
else {
if (real_mode_guest) CPL = 0;
}
#endif
BX_CPU_THIS_PTR gdtr.base = gdtr_base;
BX_CPU_THIS_PTR gdtr.limit = gdtr_limit;