um: ->restart_block.fn needs to be reset on sigreturn

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro 2012-04-22 03:27:28 -04:00
parent 76e10d158e
commit 3b7d15bde5
2 changed files with 3 additions and 3 deletions

View File

@ -29,9 +29,6 @@ static int handle_signal(struct pt_regs *regs, unsigned long signr,
unsigned long sp; unsigned long sp;
int err; int err;
/* Always make any pending restarted system calls return -EINTR */
current_thread_info()->restart_block.fn = do_no_restart_syscall;
/* Did we come from a system call? */ /* Did we come from a system call? */
if (PT_REGS_SYSCALL_NR(regs) >= 0) { if (PT_REGS_SYSCALL_NR(regs) >= 0) {
/* If so, check system call restarting.. */ /* If so, check system call restarting.. */

View File

@ -156,6 +156,9 @@ static int copy_sc_from_user(struct pt_regs *regs,
struct sigcontext sc; struct sigcontext sc;
int err, pid; int err, pid;
/* Always make any pending restarted system calls return -EINTR */
current_thread_info()->restart_block.fn = do_no_restart_syscall;
err = copy_from_user(&sc, from, sizeof(sc)); err = copy_from_user(&sc, from, sizeof(sc));
if (err) if (err)
return err; return err;