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:
Родитель
76e10d158e
Коммит
3b7d15bde5
|
@ -29,9 +29,6 @@ static int handle_signal(struct pt_regs *regs, unsigned long signr,
|
|||
unsigned long sp;
|
||||
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? */
|
||||
if (PT_REGS_SYSCALL_NR(regs) >= 0) {
|
||||
/* If so, check system call restarting.. */
|
||||
|
|
|
@ -156,6 +156,9 @@ static int copy_sc_from_user(struct pt_regs *regs,
|
|||
struct sigcontext sc;
|
||||
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));
|
||||
if (err)
|
||||
return err;
|
||||
|
|
Загрузка…
Ссылка в новой задаче