Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Sep 2014 05:12:35 +0000 (UTC)
From:      Neel Natu <neel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r271890 - head/sys/amd64/vmm/intel
Message-ID:  <201409200512.s8K5CZEH070080@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: neel
Date: Sat Sep 20 05:12:34 2014
New Revision: 271890
URL: http://svnweb.freebsd.org/changeset/base/271890

Log:
  MSR_KGSBASE is no longer saved and restored from the guest MSR save area. This
  behavior was changed in r271888 so update the comment block to reflect this.
  
  MSR_KGSBASE is accessible from the guest without triggering a VM-exit. The
  permission bitmap for MSR_KGSBASE is modified by vmx_msr_guest_init() so get
  rid of redundant code in vmx_vminit().

Modified:
  head/sys/amd64/vmm/intel/vmx.c

Modified: head/sys/amd64/vmm/intel/vmx.c
==============================================================================
--- head/sys/amd64/vmm/intel/vmx.c	Sat Sep 20 04:31:12 2014	(r271889)
+++ head/sys/amd64/vmm/intel/vmx.c	Sat Sep 20 05:12:34 2014	(r271890)
@@ -885,12 +885,6 @@ vmx_vminit(struct vm *vm, pmap_t pmap)
 	 * how they are saved/restored so can be directly accessed by the
 	 * guest.
 	 *
-	 * Guest KGSBASE is saved and restored in the guest MSR save area.
-	 * Host KGSBASE is restored before returning to userland from the pcb.
-	 * There will be a window of time when we are executing in the host
-	 * kernel context with a value of KGSBASE from the guest. This is ok
-	 * because the value of KGSBASE is inconsequential in kernel context.
-	 *
 	 * MSR_EFER is saved and restored in the guest VMCS area on a
 	 * VM exit and entry respectively. It is also restored from the
 	 * host VMCS area on a VM exit.
@@ -905,7 +899,6 @@ vmx_vminit(struct vm *vm, pmap_t pmap)
 	    guest_msr_rw(vmx, MSR_SYSENTER_CS_MSR) ||
 	    guest_msr_rw(vmx, MSR_SYSENTER_ESP_MSR) ||
 	    guest_msr_rw(vmx, MSR_SYSENTER_EIP_MSR) ||
-	    guest_msr_rw(vmx, MSR_KGSBASE) ||
 	    guest_msr_rw(vmx, MSR_EFER) ||
 	    guest_msr_ro(vmx, MSR_TSC))
 		panic("vmx_vminit: error setting guest msr access");



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201409200512.s8K5CZEH070080>