svn commit: r239025 - projects/bhyve/lib/libvmmapi
Neel Natu
neel at FreeBSD.org
Sat Aug 4 02:14:28 UTC 2012
Author: neel
Date: Sat Aug 4 02:14:27 2012
New Revision: 239025
URL: http://svn.freebsd.org/changeset/base/239025
Log:
There is no need to explicitly specify the CR4_VMXE bit when writing to guest
CR4. This bit is specific to the Intel VTX and removing it makes the library
more portable to AMD/SVM.
In the Intel VTX implementation, the hypervisor will ensure that this bit is
always set. See vmx_fix_cr4() for details.
Suggested by: grehan
Modified:
projects/bhyve/lib/libvmmapi/vmmapi.c
projects/bhyve/lib/libvmmapi/vmmapi_freebsd.c
Modified: projects/bhyve/lib/libvmmapi/vmmapi.c
==============================================================================
--- projects/bhyve/lib/libvmmapi/vmmapi.c Sat Aug 4 02:06:55 2012 (r239024)
+++ projects/bhyve/lib/libvmmapi/vmmapi.c Sat Aug 4 02:14:27 2012 (r239025)
@@ -49,10 +49,6 @@ __FBSDID("$FreeBSD$");
#include "vmmapi.h"
#include "mptable.h"
-#ifndef CR4_VMXE
-#define CR4_VMXE (1UL << 13)
-#endif
-
#define BIOS_ROM_BASE (0xf0000)
#define BIOS_ROM_SIZE (0x10000)
@@ -536,7 +532,7 @@ vcpu_reset(struct vmctx *vmctx, int vcpu
if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR3, zero)) != 0)
goto done;
- cr4 = CR4_VMXE;
+ cr4 = 0;
if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR4, cr4)) != 0)
goto done;
Modified: projects/bhyve/lib/libvmmapi/vmmapi_freebsd.c
==============================================================================
--- projects/bhyve/lib/libvmmapi/vmmapi_freebsd.c Sat Aug 4 02:06:55 2012 (r239024)
+++ projects/bhyve/lib/libvmmapi/vmmapi_freebsd.c Sat Aug 4 02:14:27 2012 (r239025)
@@ -37,10 +37,6 @@ __FBSDID("$FreeBSD$");
#include "vmmapi.h"
-#ifndef CR4_VMXE
-#define CR4_VMXE (1UL << 13)
-#endif
-
#define DESC_UNUSABLE 0x00010000
#define GUEST_NULL_SEL 0
@@ -74,7 +70,7 @@ vm_setup_freebsd_registers(struct vmctx
if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR0, cr0)) != 0)
goto done;
- cr4 = CR4_PAE | CR4_VMXE;
+ cr4 = CR4_PAE;
if ((error = vm_set_register(vmctx, vcpu, VM_REG_GUEST_CR4, cr4)) != 0)
goto done;
More information about the svn-src-projects
mailing list