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

[Xen-changelog] SVM patch to fix problem with instruction decode.



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID e995d090bba912d26579538130c8fdfc525e5902
# Parent  fbc3a2657fefa4621e52de168efc3f99f74c8f03
SVM patch to fix problem with instruction decode.

Signed-off-by: Tom Woller <thomas.woller@xxxxxxx>

diff -r fbc3a2657fef -r e995d090bba9 xen/arch/x86/hvm/svm/svm.c
--- a/xen/arch/x86/hvm/svm/svm.c        Tue Mar 21 21:57:47 2006
+++ b/xen/arch/x86/hvm/svm/svm.c        Wed Mar 22 09:35:35 2006
@@ -1243,20 +1243,19 @@
                 "svm_io_instruction: port 0x%lx real %d, eip=%lx:%lx, "
                 "exit_qualification = %lx",
                 (unsigned long) port, real, cs, eip, (unsigned 
long)info.bytes);
-
-    /* 
-     * On SVM, the RIP of the intruction following the IN/OUT is saved in
-     * ExitInfo2
-     */
-    vmcb->rip = vmcb->exitinfo2;
-
     /* string instruction */
     if (info.fields.str)
     { 
         unsigned long addr, count = 1;
         int sign = regs->eflags & EF_DF ? -1 : 1;
 
+        /* Need the original rip, here. */
         addr = svm_get_io_address(vmcb, regs, dir, real);
+        /* 
+         * On SVM, the RIP of the intruction following the IN/OUT is saved in
+         * ExitInfo2
+         */
+        vmcb->rip = vmcb->exitinfo2;
 
         /* "rep" prefix */
         if (info.fields.rep) 
@@ -1295,6 +1294,12 @@
     } 
     else 
     {
+        /* 
+         * On SVM, the RIP of the intruction following the IN/OUT is saved in
+         * ExitInfo2
+         */
+        vmcb->rip = vmcb->exitinfo2;
+
         if (port == 0xe9 && dir == IOREQ_WRITE && size == 1) 
             hvm_print_line(v, regs->eax); /* guest debug output */
     

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
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®.