--- 7ce1a1005b1da4c3b13f8b87927d060376279f2a +++ 9882df92ba0a2c8b8da4639f7e181214930c8ed6 @@ -267,15 +267,17 @@ static inline void __user *get_sigframe( sp = current->sas_ss_sp + current->sas_ss_size; } + sp -= framesize; + /* Always align the stack frame. This handles two cases. First, * sigaltstack need not be mindful of platform specific stack * alignment. Second, if we took this signal because the stack * is not aligned properly, we'd like to take the signal cleanly * and report that. */ - sp &= ~7UL; + sp &= ~15UL; - return (void __user *)(sp - framesize); + return (void __user *) sp; } static inline int