Commit 2deba1bd authored by Al Viro's avatar Al Viro Committed by Matt Turner

alpha: belated ERESTART_RESTARTBLOCK race fix

same thing as had been done on other targets back in 2003 -
move setting ->restart_block.fn into {rt_,}sigreturn().
Tested-by: default avatarMichael Cree <mcree@orcon.net.nz>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarMatt Turner <mattst88@gmail.com>
parent bdc8b891
...@@ -239,6 +239,8 @@ restore_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs, ...@@ -239,6 +239,8 @@ restore_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs,
unsigned long usp; unsigned long usp;
long i, err = __get_user(regs->pc, &sc->sc_pc); long i, err = __get_user(regs->pc, &sc->sc_pc);
current_thread_info()->restart_block.fn = do_no_restart_syscall;
sw->r26 = (unsigned long) ret_from_sys_call; sw->r26 = (unsigned long) ret_from_sys_call;
err |= __get_user(regs->r0, sc->sc_regs+0); err |= __get_user(regs->r0, sc->sc_regs+0);
...@@ -591,7 +593,6 @@ syscall_restart(unsigned long r0, unsigned long r19, ...@@ -591,7 +593,6 @@ syscall_restart(unsigned long r0, unsigned long r19,
regs->pc -= 4; regs->pc -= 4;
break; break;
case ERESTART_RESTARTBLOCK: case ERESTART_RESTARTBLOCK:
current_thread_info()->restart_block.fn = do_no_restart_syscall;
regs->r0 = EINTR; regs->r0 = EINTR;
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment