summaryrefslogtreecommitdiffstats
path: root/arch/avr32/kernel
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-04-22 03:36:05 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-05-21 23:52:40 -0400
commit446cdd13275bfa38b858a1e99dbd61c07c9767c0 (patch)
tree8312ba0e7d3bdb31a28ea62c9683fbb196f92c40 /arch/avr32/kernel
parent188f677f84e935f83e3d539d6e8808006f6ac62f (diff)
downloadlinux-stable-446cdd13275bfa38b858a1e99dbd61c07c9767c0.tar.gz
linux-stable-446cdd13275bfa38b858a1e99dbd61c07c9767c0.tar.bz2
linux-stable-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/kernel')
-rw-r--r--arch/avr32/kernel/signal.c3
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);