}
}
-asmlinkage int
+asmlinkage int
sys_sigaction(int sig, const struct old_sigaction *act,
struct old_sigaction *oact)
{
/* get previous context */
if (copy_from_user(&context, usc, sizeof(context)))
goto badframe;
-
+
/* restore passed registers */
regs->d1 = context.sc_d1;
regs->a0 = context.sc_a0;
sigdelsetmask(&set, ~_BLOCKABLE);
current->blocked = set;
recalc_sigpending();
-
+
if (restore_sigcontext(regs, &frame->sc, frame + 1, &d0))
goto badframe;
return d0;
sigdelsetmask(&set, ~_BLOCKABLE);
current->blocked = set;
recalc_sigpending();
-
+
if (rt_restore_ucontext(regs, sw, &frame->uc, &d0))
goto badframe;
return d0;
current->state = TASK_STOPPED;
current->exit_code = signr;
sighand = current->parent->sighand;
- if (sighand && !(sighand->action[SIGCHLD-1].sa.sa_flags
+ if (sighand && !(sighand->action[SIGCHLD-1].sa.sa_flags
& SA_NOCLDSTOP))
notify_parent(current, SIGCHLD);
schedule();