Jan Beulich
2008-Dec-05 14:20 UTC
[Xen-devel] [PATCH] x86/32on64: adjust address when converting syscall to fault
The faulting address is at the start of the syscall instruction rather
than at the following one.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Index: 2008-11-20/xen/arch/x86/x86_64/compat/entry.S
==================================================================---
2008-11-20.orig/xen/arch/x86/x86_64/compat/entry.S 2008-07-18 16:19:34.000000000
+0200
+++ 2008-11-20/xen/arch/x86/x86_64/compat/entry.S 2008-11-28 11:47:56.000000000
+0100
@@ -234,6 +234,7 @@ ENTRY(compat_syscall)
call compat_create_bounce_frame
jmp compat_test_all_events
2: movl $TRAP_gp_fault,UREGS_entry_vector(%rsp)
+ subl $2,UREGS_rip(%rsp)
movq VCPU_gp_fault_addr(%rbx),%rax
movzwl VCPU_gp_fault_sel(%rbx),%esi
movb $(TBF_EXCEPTION|TBF_EXCEPTION_ERRCODE|TBF_INTERRUPT),%cl
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel