diff options
Diffstat (limited to 'arch/openrisc/kernel/signal.c')
| -rw-r--r-- | arch/openrisc/kernel/signal.c | 6 | 
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/openrisc/kernel/signal.c b/arch/openrisc/kernel/signal.c index 30110297f4f..ddedc8a7786 100644 --- a/arch/openrisc/kernel/signal.c +++ b/arch/openrisc/kernel/signal.c @@ -84,7 +84,6 @@ asmlinkage long _sys_rt_sigreturn(struct pt_regs *regs)  {  	struct rt_sigframe *frame = (struct rt_sigframe __user *)regs->sp;  	sigset_t set; -	stack_t st;  	/*  	 * Since we stacked the signal on a dword boundary, @@ -104,11 +103,10 @@ asmlinkage long _sys_rt_sigreturn(struct pt_regs *regs)  	if (restore_sigcontext(regs, &frame->uc.uc_mcontext))  		goto badframe; -	if (__copy_from_user(&st, &frame->uc.uc_stack, sizeof(st))) -		goto badframe;  	/* It is more difficult to avoid calling this function than to  	   call it and ignore errors.  */ -	do_sigaltstack(&st, NULL, regs->sp); +	if (do_sigaltstack(&frame->uc.uc_stack, NULL, regs->sp) == -EFAULT) +		goto badframe;  	return regs->gpr[11];  |