diff options
Diffstat (limited to 'arch/sh/kernel/signal_64.c')
| -rw-r--r-- | arch/sh/kernel/signal_64.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/sh/kernel/signal_64.c b/arch/sh/kernel/signal_64.c index 23853814bd1..d867cd95a62 100644 --- a/arch/sh/kernel/signal_64.c +++ b/arch/sh/kernel/signal_64.c | |||
| @@ -347,7 +347,6 @@ asmlinkage int sys_rt_sigreturn(unsigned long r2, unsigned long r3, | |||
| 347 | { | 347 | { |
| 348 | struct rt_sigframe __user *frame = (struct rt_sigframe __user *) (long) REF_REG_SP; | 348 | struct rt_sigframe __user *frame = (struct rt_sigframe __user *) (long) REF_REG_SP; |
| 349 | sigset_t set; | 349 | sigset_t set; |
| 350 | stack_t __user st; | ||
| 351 | long long ret; | 350 | long long ret; |
| 352 | 351 | ||
| 353 | /* Always make any pending restarted system calls return -EINTR */ | 352 | /* Always make any pending restarted system calls return -EINTR */ |
| @@ -365,11 +364,10 @@ asmlinkage int sys_rt_sigreturn(unsigned long r2, unsigned long r3, | |||
| 365 | goto badframe; | 364 | goto badframe; |
| 366 | regs->pc -= 4; | 365 | regs->pc -= 4; |
| 367 | 366 | ||
| 368 | if (__copy_from_user(&st, &frame->uc.uc_stack, sizeof(st))) | ||
| 369 | goto badframe; | ||
| 370 | /* It is more difficult to avoid calling this function than to | 367 | /* It is more difficult to avoid calling this function than to |
| 371 | call it and ignore errors. */ | 368 | call it and ignore errors. */ |
| 372 | do_sigaltstack(&st, NULL, REF_REG_SP); | 369 | if (do_sigaltstack(&frame->uc.uc_stack, NULL, REF_REG_SP) == -EFAULT) |
| 370 | goto badframe; | ||
| 373 | 371 | ||
| 374 | return (int) ret; | 372 | return (int) ret; |
| 375 | 373 | ||
