]> git.neil.brown.name Git - history.git/commit
[PATCH] TASK_STOPPED wakeup cleanup
authorRoland McGrath <roland@redhat.com>
Fri, 7 Feb 2003 08:31:37 +0000 (00:31 -0800)
committerKai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
Fri, 7 Feb 2003 08:31:37 +0000 (00:31 -0800)
commit03e218313940d2948c2b72df2710e193e42acca5
tree449e4c1cf56f3bad58d866e39efcdde75a073782
parent631da088f602364f696a50d001b5c2f3d0026070
[PATCH] TASK_STOPPED wakeup cleanup

For handle_stop_signal to do the special case for SIGKILL and have it
work right in all SMP cases (without changing all the existing ptrace
stops), it needs to at least set TIF_SIGPENDING on each thread before
resuming it.

handle_stop_signal addresses a related race for SIGCONT by setting
TIF_SIGPENDING already, so having SIGKILL handled the same way makes
sense.

Now it seems pretty clean to have handle_stop_signal resume threads for
SIGKILL, and have on SIGKILL special case in group_send_sig_info.

There is also an SMP race issue with cases like do_syscall_trace, i.e.
TASK_STOPPED state set without holding the siglock.  So I think
handle_stop_signal should call wake_up_process unconditionally.
kernel/signal.c