aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc/kernel/signal.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-04-22 03:15:40 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-05-21 23:52:38 -0400
commit85a847ffad1d4ee94590db25bad444d18a8db263 (patch)
tree9cca96bd821a238d5571a08457b302ef8e4f3da2 /arch/parisc/kernel/signal.c
parent43a35995562495bd70a87b5d3a2e820036ee6597 (diff)
parisc: resetting ->restart_block.fn needs to be done on rt_sigreturn()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/parisc/kernel/signal.c')
-rw-r--r--arch/parisc/kernel/signal.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/parisc/kernel/signal.c b/arch/parisc/kernel/signal.c
index bd36152b780e..4b9cb0d546d1 100644
--- a/arch/parisc/kernel/signal.c
+++ b/arch/parisc/kernel/signal.c
@@ -109,6 +109,7 @@ sys_rt_sigreturn(struct pt_regs *regs, int in_syscall)
109 sigframe_size = PARISC_RT_SIGFRAME_SIZE32; 109 sigframe_size = PARISC_RT_SIGFRAME_SIZE32;
110#endif 110#endif
111 111
112 current_thread_info()->restart_block.fn = do_no_restart_syscall;
112 113
113 /* Unwind the user stack to get the rt_sigframe structure. */ 114 /* Unwind the user stack to get the rt_sigframe structure. */
114 frame = (struct rt_sigframe __user *) 115 frame = (struct rt_sigframe __user *)
@@ -466,8 +467,6 @@ syscall_restart(struct pt_regs *regs, struct k_sigaction *ka)
466 /* Check the return code */ 467 /* Check the return code */
467 switch (regs->gr[28]) { 468 switch (regs->gr[28]) {
468 case -ERESTART_RESTARTBLOCK: 469 case -ERESTART_RESTARTBLOCK:
469 current_thread_info()->restart_block.fn =
470 do_no_restart_syscall;
471 case -ERESTARTNOHAND: 470 case -ERESTARTNOHAND:
472 DBG(1,"ERESTARTNOHAND: returning -EINTR\n"); 471 DBG(1,"ERESTARTNOHAND: returning -EINTR\n");
473 regs->gr[28] = -EINTR; 472 regs->gr[28] = -EINTR;