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@novell.com> --- src/xen/2005-08-29/xen/arch/x86/x86_64/entry.S 2005-08-29 14:29:56.000000000 +0200 +++ cpp/xen/2005-08-29/xen/arch/x86/x86_64/entry.S 2005-08-29 17:17:40.304663936 +0200 @@ -339,6 +339,7 @@ create_bounce_frame: 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. + andq $~0xf,%rsi # Align frame like hardware would. 2: movq $HYPERVISOR_VIRT_START,%rax cmpq %rax,%rsi jb 1f # In +ve address space? Then okay. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel