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