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

[PATCH 4/6] x86/pv: set DR_STEP if single-stepping after ro page fault emulation



Signed-off-by: Jinoh Kang <jinoh.kang.kr@xxxxxxxxx>
---
 xen/arch/x86/pv/ro-page-fault.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/xen/arch/x86/pv/ro-page-fault.c b/xen/arch/x86/pv/ro-page-fault.c
index cad28ef928ad..238bfbeb4ac4 100644
--- a/xen/arch/x86/pv/ro-page-fault.c
+++ b/xen/arch/x86/pv/ro-page-fault.c
@@ -10,6 +10,7 @@
 
 #include <asm/pv/trace.h>
 #include <asm/shadow.h>
+#include <asm/debugreg.h>
 
 #include "emulate.h"
 #include "mm.h"
@@ -390,7 +391,10 @@ int pv_ro_page_fault(unsigned long addr, struct 
cpu_user_regs *regs)
         /* Fallthrough */
     case X86EMUL_OKAY:
         if ( ctxt.retire.singlestep )
+        {
+            current->arch.dr6 |= DR_STEP | DR_STATUS_RESERVED_ONE;
             pv_inject_hw_exception(X86_EXC_DB, X86_EVENT_NO_EC);
+        }
 
         /* Fallthrough */
     case X86EMUL_RETRY:
-- 
2.41.0




 


Rackspace

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