While this is not really matching native behavior, no guest seems to assume
EFLAGS.DF being set or reflecting application state. Thus clear it for now,
the syscall/sysenter patch that I'll hopefully be able to get to work will
then introduce a more consistent solution. In any case, without this any
app can easily force kernel data corruption.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
Index: 2007-06-18/xen/arch/x86/x86_64/entry.S
===================================================================
--- 2007-06-18.orig/xen/arch/x86/x86_64/entry.S 2007-06-22 16:35:55.000000000
+0200
+++ 2007-06-18/xen/arch/x86/x86_64/entry.S 2007-06-22 16:36:59.000000000
+0200
@@ -34,6 +34,7 @@ switch_to_kernel:
jnc 1f
movb $TBF_INTERRUPT,TRAPBOUNCE_flags(%rdx)
1: call create_bounce_frame
+ andl $~X86_EFLAGS_DF,UREGS_eflags(%rsp)
jmp test_all_events
/* %rbx: struct vcpu, interrupts disabled */
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|