Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=66761522a7bca951c1214498b80260533957e3ad
Commit:     66761522a7bca951c1214498b80260533957e3ad
Parent:     0e17b560985afb5190e859d5d4609237a91bb732
Author:     Markus F.X.J. Oberhumer <[EMAIL PROTECTED]>
AuthorDate: Mon Apr 23 12:00:05 2007 +0200
Committer:  Tony Luck <[EMAIL PROTECTED]>
CommitDate: Tue May 8 11:22:59 2007 -0700

    [IA64] fix stack alignment for ia32 signal handlers
    
    This fixes the setup of the alignment of the signal frame, so that all
    signal handlers are run with a properly aligned stack frame.
    
    The current code "over-aligns" the stack pointer so that the stack frame
    is effectively always mis-aligned by 4 bytes.  But what we really want
    is that on function entry ((sp + 4) & 15) == 0, which matches what would
    happen if the stack were aligned before a "call" instruction.
    
    i386 and x86_64 are already fixed by 
d347f372273c2b3d86a66e2e1c94c790c208e166
    
    Signed-off-by: Markus F.X.J. Oberhumer <[EMAIL PROTECTED]>
    Signed-off-by: Tony Luck <[EMAIL PROTECTED]>
---
 arch/ia64/ia32/ia32_signal.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/arch/ia64/ia32/ia32_signal.c b/arch/ia64/ia32/ia32_signal.c
index b3355a9..7b38b73 100644
--- a/arch/ia64/ia32/ia32_signal.c
+++ b/arch/ia64/ia32/ia32_signal.c
@@ -811,7 +811,11 @@ get_sigframe (struct k_sigaction *ka, struct pt_regs * 
regs, size_t frame_size)
        }
        /* Legacy stack switching not supported */
 
-       return (void __user *)((esp - frame_size) & -8ul);
+       esp -= frame_size;
+       /* Align the stack pointer according to the i386 ABI,
+        * i.e. so that on function entry ((sp + 4) & 15) == 0. */
+       esp = ((esp + 4) & -16ul) - 4;
+       return (void __user *) esp;
 }
 
 static int
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to