diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-04-22 03:15:40 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-05-21 23:52:38 -0400 |
commit | 85a847ffad1d4ee94590db25bad444d18a8db263 (patch) | |
tree | 9cca96bd821a238d5571a08457b302ef8e4f3da2 /arch/parisc/kernel/signal.c | |
parent | 43a35995562495bd70a87b5d3a2e820036ee6597 (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.c | 3 |
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; |