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

[Xen-changelog] When generating an exception frame for injection into a



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 6b48b53b682d5fa8bc61ceb727a346d25148c1e9
# Parent  872e94f8eb6944d61d16b7e097f9b613fd52fc4e
When generating an exception frame for injection into a
guest, that frame's base should be aligned on a 16-byte
boundary (as is done by the hardware).

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

diff -r 872e94f8eb69 -r 6b48b53b682d xen/arch/x86/x86_64/entry.S
--- a/xen/arch/x86/x86_64/entry.S       Tue Aug 30 16:44:05 2005
+++ b/xen/arch/x86/x86_64/entry.S       Tue Aug 30 16:53:40 2005
@@ -339,7 +339,8 @@
 1:      /* In kernel context already: push new frame at existing %rsp. */
         movq  UREGS_rsp+8(%rsp),%rsi
         andb  $0xfc,UREGS_cs+8(%rsp)    # Indicate kernel context to guest.
-2:      movq  $HYPERVISOR_VIRT_START,%rax
+2:      andq  $~0xf,%rsi                # Stack frames are 16-byte aligned.
+        movq  $HYPERVISOR_VIRT_START,%rax
         cmpq  %rax,%rsi
         jb    1f                        # In +ve address space? Then okay.
         movq  $HYPERVISOR_VIRT_END+60,%rax

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