From: Heiko Carstens Consider return value of __put_user() when setting up a signal frame instead of ignoring it. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton --- arch/s390/kernel/signal.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff -puN arch/s390/kernel/signal.c~s390-bug-in-setup_rt_frame arch/s390/kernel/signal.c --- 25/arch/s390/kernel/signal.c~s390-bug-in-setup_rt_frame Mon Apr 24 16:45:52 2006 +++ 25-akpm/arch/s390/kernel/signal.c Mon Apr 24 16:45:52 2006 @@ -358,8 +358,9 @@ static int setup_rt_frame(int sig, struc } else { regs->gprs[14] = (unsigned long) frame->retcode | PSW_ADDR_AMODE; - err |= __put_user(S390_SYSCALL_OPCODE | __NR_rt_sigreturn, - (u16 __user *)(frame->retcode)); + if (__put_user(S390_SYSCALL_OPCODE | __NR_sigreturn, + (u16 __user *)(frame->retcode))) + goto give_sigsegv; } /* Set up backchain. */ _