[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] x86: adjust unwind info for special HYPERVISOR_iret stack layout
# HG changeset patch # User Jan Beulich <jbeulich@xxxxxxxx> # Date 1353918649 -3600 # Node ID b9b0a1e9130eb933a34b548508f9ee43fd6e4871 # Parent b357fab4566ac8daf168e49fee383b1b0a4b9ffb x86: adjust unwind info for special HYPERVISOR_iret stack layout Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> --- diff -r b357fab4566a -r b9b0a1e9130e arch/i386/kernel/head-xen.S --- a/arch/i386/kernel/head-xen.S Mon Nov 26 09:29:19 2012 +0100 +++ b/arch/i386/kernel/head-xen.S Mon Nov 26 09:30:49 2012 +0100 @@ -70,7 +70,13 @@ ENTRY(startup_32) .org HYPERCALL_PAGE_OFFSET ENTRY(hypercall_page) CFI_STARTPROC -.skip 0x1000 + .skip __HYPERVISOR_iret * 32 + CFI_REMEMBER_STATE + .skip 1 /* push %eax */ + CFI_ADJUST_CFA_OFFSET 8 + CFI_REL_OFFSET eax,0 + CFI_RESTORE_STATE + .balign 0x1000,0 CFI_ENDPROC /* diff -r b357fab4566a -r b9b0a1e9130e arch/x86_64/kernel/head-xen.S --- a/arch/x86_64/kernel/head-xen.S Mon Nov 26 09:29:19 2012 +0100 +++ b/arch/x86_64/kernel/head-xen.S Mon Nov 26 09:30:49 2012 +0100 @@ -23,6 +23,7 @@ #include <asm/msr.h> #include <asm/cache.h> #include <asm/dwarf2.h> +#include <xen/interface/xen.h> #include <xen/interface/elfnote.h> #include <xen/interface/features.h> @@ -80,6 +81,7 @@ NEXT_PAGE(level3_user_pgt) NEXT_PAGE(hypercall_page) CFI_STARTPROC + i = 0 .rept 0x1000 / 0x20 .skip 1 /* push %rcx */ CFI_ADJUST_CFA_OFFSET 8 @@ -87,15 +89,25 @@ NEXT_PAGE(hypercall_page) .skip 2 /* push %r11 */ CFI_ADJUST_CFA_OFFSET 8 CFI_REL_OFFSET r11,0 + .if i == __HYPERVISOR_iret + .skip 1 /* push %rax */ + CFI_ADJUST_CFA_OFFSET 8 + CFI_REL_OFFSET rax,0 + .endif .skip 5 /* mov $#,%eax */ .skip 2 /* syscall */ + .if i == __HYPERVISOR_iret + CFI_ADJUST_CFA_OFFSET -3*8 + .else .skip 2 /* pop %r11 */ CFI_ADJUST_CFA_OFFSET -8 CFI_RESTORE r11 .skip 1 /* pop %rcx */ CFI_ADJUST_CFA_OFFSET -8 CFI_RESTORE rcx - .align 0x20,0 /* ret */ + .endif + .balign 0x20,0 /* ret */ + i = i + 1 .endr CFI_ENDPROC _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |