hexagon: ->restart_block.fn needs to be reset on rt_sigreturn
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 22 Apr 2012 07:31:24 +0000 (03:31 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 22 May 2012 03:52:38 +0000 (23:52 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/hexagon/kernel/signal.c

index ab5f5ad..434866e 100644 (file)
@@ -294,6 +294,9 @@ asmlinkage int sys_rt_sigreturn(void)
        struct rt_sigframe __user *frame;
        sigset_t blocked;
 
+       /* Always make any pending restarted system calls return -EINTR */
+       current_thread_info()->restart_block.fn = do_no_restart_syscall;
+
        frame = (struct rt_sigframe __user *)pt_psp(regs);
        if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
                goto badframe;