[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-4.2-testing] nested vmx: fix DR access VM exit


  • To: xen-changelog@xxxxxxxxxxxxxxxxxxx
  • From: Xen patchbot-4.2-testing <patchbot@xxxxxxx>
  • Date: Thu, 20 Dec 2012 04:33:10 +0000
  • Delivery-date: Thu, 20 Dec 2012 04:35:17 +0000
  • List-id: "Change log for Mercurial \(receive only\)" <xen-changelog.lists.xen.org>

# HG changeset patch
# User Dongxiao Xu <dongxiao.xu@xxxxxxxxx>
# Date 1355918195 -3600
# Node ID 44ec641fcbd5931270b22ef88e401c3621df8cb9
# Parent  b11d8dcf1da5abe11c6aa7ad62aa508a4e667349
nested vmx: fix DR access VM exit

For DR register, we use lazy restore mechanism when access
it. Therefore when receiving such VM exit, L0 should be responsible to
switch to the right DR values, then inject to L1 hypervisor.

Signed-off-by: Dongxiao Xu <dongxiao.xu@xxxxxxxxx>
Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
xen-unstable changeset: 26254:e6eb1e52da7c
xen-unstable date: Thu Dec  6 16:56:49 UTC 2012
---


diff -r b11d8dcf1da5 -r 44ec641fcbd5 xen/arch/x86/hvm/vmx/vvmx.c
--- a/xen/arch/x86/hvm/vmx/vvmx.c       Wed Dec 19 12:55:45 2012 +0100
+++ b/xen/arch/x86/hvm/vmx/vvmx.c       Wed Dec 19 12:56:35 2012 +0100
@@ -1585,7 +1585,8 @@ int nvmx_n2_vmexit_handler(struct cpu_us
         break;
     case EXIT_REASON_DR_ACCESS:
         ctrl = __n2_exec_control(v);
-        if ( ctrl & CPU_BASED_MOV_DR_EXITING )
+        if ( (ctrl & CPU_BASED_MOV_DR_EXITING) &&
+            v->arch.hvm_vcpu.flag_dr_dirty )
             nvcpu->nv_vmexit_pending = 1;
         break;
     case EXIT_REASON_INVLPG:

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.