diff options
Diffstat (limited to 'arch/ia64/ia32/ia32_signal.c')
-rw-r--r-- | 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 b3355a9ca2c3..7b38b73e7827 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) | |||
811 | } | 811 | } |
812 | /* Legacy stack switching not supported */ | 812 | /* Legacy stack switching not supported */ |
813 | 813 | ||
814 | return (void __user *)((esp - frame_size) & -8ul); | 814 | esp -= frame_size; |
815 | /* Align the stack pointer according to the i386 ABI, | ||
816 | * i.e. so that on function entry ((sp + 4) & 15) == 0. */ | ||
817 | esp = ((esp + 4) & -16ul) - 4; | ||
818 | return (void __user *) esp; | ||
815 | } | 819 | } |
816 | 820 | ||
817 | static int | 821 | static int |