[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


  • To: xen-changelog@xxxxxxxxxxxxxxxxxxx
  • From: Xen patchbot-linux-2.6.18-xen <patchbot@xxxxxxx>
  • Date: Fri, 18 Jan 2013 11:55:03 +0000
  • Delivery-date: Fri, 18 Jan 2013 11:55:13 +0000
  • List-id: "Change log for Mercurial \(receive only\)" <xen-changelog.lists.xen.org>

# 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


 


Rackspace

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