[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] i386: fix unwind annotations in failsafe callback
# HG changeset patch # User Jan Beulich <jbeulich@xxxxxxxx> # Date 1358509649 -3600 # Node ID feb110c9141c2efcdaa8cbc92268b8515771377d # Parent cba2a1740833211cf5befca1fbe11a44ab911948 i386: fix unwind annotations in failsafe callback This amends c/s 14245:b1f33c3a97fa (when the sparse Linux tree was still part of the main Xen repo) in that it - adds a missing annotation to the "pushl $-1" - moves the RING0_INT_FRAME earlier (after adjusting the code to do the stack pointer adjustment before the conditional branch), thus increasing the covered region Reported-by: Matthew Daley <mattjd@xxxxxxxxx> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> --- diff -r cba2a1740833 -r feb110c9141c arch/i386/kernel/entry-xen.S --- a/arch/i386/kernel/entry-xen.S Fri Jan 18 12:39:54 2013 +0100 +++ b/arch/i386/kernel/entry-xen.S Fri Jan 18 12:47:29 2013 +0100 @@ -872,12 +872,11 @@ 3: mov 12(%esp),%fs 4: mov 16(%esp),%gs testl %eax,%eax popl %eax - jz 5f - addl $16,%esp # EAX != 0 => Category 2 (Bad IRET) - jmp iret_exc -5: addl $16,%esp # EAX == 0 => Category 1 (Bad segment) + leal 16(%esp),%esp RING0_INT_FRAME - pushl $-1 + jnz iret_exc # EAX != 0 => Category 2 (Bad IRET) + pushl $-1 # EAX == 0 => Category 1 (Bad segment) + CFI_ADJUST_CFA_OFFSET 4 SAVE_ALL jmp ret_from_exception .section .fixup,"ax"; \ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |