diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-04-22 03:36:05 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-05-21 23:52:40 -0400 |
commit | 446cdd13275bfa38b858a1e99dbd61c07c9767c0 (patch) | |
tree | 8312ba0e7d3bdb31a28ea62c9683fbb196f92c40 /arch/avr32 | |
parent | 188f677f84e935f83e3d539d6e8808006f6ac62f (diff) | |
download | linux-446cdd13275bfa38b858a1e99dbd61c07c9767c0.tar.gz linux-446cdd13275bfa38b858a1e99dbd61c07c9767c0.tar.bz2 linux-446cdd13275bfa38b858a1e99dbd61c07c9767c0.zip |
avr32: ->restart_block.fn needs to be reset on rt_sigreturn
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/avr32')
-rw-r--r-- | arch/avr32/kernel/signal.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/avr32/kernel/signal.c b/arch/avr32/kernel/signal.c index feeb77bd81c7..a4855aecbe44 100644 --- a/arch/avr32/kernel/signal.c +++ b/arch/avr32/kernel/signal.c @@ -77,6 +77,9 @@ asmlinkage int sys_rt_sigreturn(struct pt_regs *regs) struct rt_sigframe __user *frame; sigset_t set; + /* Always make any pending restarted system calls return -EINTR */ + current_thread_info()->restart_block.fn = do_no_restart_syscall; + frame = (struct rt_sigframe __user *)regs->sp; pr_debug("SIG return: frame = %p\n", frame); |