summaryrefslogtreecommitdiffstats
path: root/arch/mn10300/kernel/signal.c
diff options
context:
space:
mode:
authorAl Viro <viro@ftp.linux.org.uk>2010-09-26 20:28:52 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2010-09-27 21:19:53 +0200
commitc05628b49b19187841d635dddd3e47caab33242b (patch)
treed624d95c154ee59589f166b84e4dc178e7723d46 /arch/mn10300/kernel/signal.c
parentmn10300: prevent double syscall restarts (diff)
downloadlinux-c05628b49b19187841d635dddd3e47caab33242b.tar.xz
linux-c05628b49b19187841d635dddd3e47caab33242b.zip
mn10300: ->restart_block.fn needs to be reset on sigreturn
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/mn10300/kernel/signal.c')
-rw-r--r--arch/mn10300/kernel/signal.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/mn10300/kernel/signal.c b/arch/mn10300/kernel/signal.c
index 4ef99256fa49..5a2c0040b166 100644
--- a/arch/mn10300/kernel/signal.c
+++ b/arch/mn10300/kernel/signal.c
@@ -102,6 +102,9 @@ static int restore_sigcontext(struct pt_regs *regs,
{
unsigned int err = 0;
+ /* Always make any pending restarted system calls return -EINTR */
+ current_thread_info()->restart_block.fn = do_no_restart_syscall;
+
if (is_using_fpu(current))
fpu_kill_state(current);