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

[Xen-devel] [PATCH] vmx: correct EIP value of task-state segment



Major OSes(Linux, windows, ...) don't seem to use task switching. 
So this bug is missed.

Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>

diff -r e6c966b3a4d8 xen/arch/x86/hvm/vmx/vmx.c
--- a/xen/arch/x86/hvm/vmx/vmx.c        Thu Jul 30 17:56:23 2009 +0100
+++ b/xen/arch/x86/hvm/vmx/vmx.c        Fri Jul 31 09:15:16 2009 +0900
@@ -2490,6 +2490,8 @@ asmlinkage void vmx_vmexit_handler(struc
         if ( (idtv_info & INTR_INFO_VALID_MASK) &&
              (idtv_info & INTR_INFO_DELIVER_CODE_MASK) )
             errcode = __vmread(IDT_VECTORING_ERROR_CODE);
+        inst_len = __get_instruction_length(); /* Safe: See SDM 3B 23.2.4 */
+        regs->eip += inst_len;
         hvm_task_switch((uint16_t)exit_qualification,
                         reasons[(exit_qualification >> 30) & 3],
                         errcode);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

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