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

[Xen-devel] [PATCH] x86-64: clear DF for kernel when forwarding syscall



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


 


Rackspace

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