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

[Xen-changelog] [xen-3.2-testing] vmx: Update RIP past INT3 instruction on INT3 vmexit.



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1224178057 -3600
# Node ID dfbf481940bb48c891fe2988721a02db05bb7d29
# Parent  65479fae664911f8435485daf0eb91908e39dd67
vmx: Update RIP past INT3 instruction on INT3 vmexit.

Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
xen-unstable changeset:   18593:cafbd83e2258
xen-unstable date:        Fri Oct 10 10:11:34 2008 +0100
---
 xen/arch/x86/hvm/vmx/vmx.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletion(-)

diff -r 65479fae6649 -r dfbf481940bb xen/arch/x86/hvm/vmx/vmx.c
--- a/xen/arch/x86/hvm/vmx/vmx.c        Thu Oct 16 18:27:17 2008 +0100
+++ b/xen/arch/x86/hvm/vmx/vmx.c        Thu Oct 16 18:27:37 2008 +0100
@@ -2817,10 +2817,15 @@ asmlinkage void vmx_vmexit_handler(struc
              */
             exit_qualification = __vmread(EXIT_QUALIFICATION);
             write_debugreg(6, exit_qualification | 0xffff0ff0);
-            /* fall through */
+            if ( !v->domain->debugger_attached )
+                goto exit_and_crash;
+            domain_pause_for_debugger();
+            break;
         case TRAP_int3:
             if ( !v->domain->debugger_attached )
                 goto exit_and_crash;
+            inst_len = __get_instruction_length(); /* Safe: INT3 */
+            __update_guest_eip(inst_len);
             domain_pause_for_debugger();
             break;
         case TRAP_no_device:

_______________________________________________
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®.