summaryrefslogtreecommitdiffstats
path: root/arch/c6x/kernel/signal.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-04-22 09:30:18 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2012-05-22 05:52:38 +0200
commit2a3fdc117cdd664814d7374941698729e47fea95 (patch)
treef003669c4e568c4a07e63aa26460de9ded71d294 /arch/c6x/kernel/signal.c
parentparisc: resetting ->restart_block.fn needs to be done on rt_sigreturn() (diff)
downloadlinux-2a3fdc117cdd664814d7374941698729e47fea95.tar.xz
linux-2a3fdc117cdd664814d7374941698729e47fea95.zip
c6x: ->restart_block.fn needs to be reset on rt_sigreturn
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/c6x/kernel/signal.c')
-rw-r--r--arch/c6x/kernel/signal.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/c6x/kernel/signal.c b/arch/c6x/kernel/signal.c
index 3b5a05099989..cf37478c1169 100644
--- a/arch/c6x/kernel/signal.c
+++ b/arch/c6x/kernel/signal.c
@@ -69,6 +69,9 @@ asmlinkage int do_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;
+
/*
* Since we stacked the signal on a dword boundary,
* 'sp' should be dword aligned here. If it's