mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-03 21:01:50 +00:00
[PATCH] Fix task state testing properly in do_signal_stop()
Any tests using < TASK_STOPPED or the like are left over from the time when the TASK_ZOMBIE and TASK_DEAD bits were in the same word, and it served to check for "stopped or dead". I think this one in do_signal_stop is the only such case. It has been buggy ever since exit_state was separated, and isn't testing the exit_state value. Signed-off-by: Roland McGrath <roland@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
4a8342d233
commit
5acbc5cb50
1 changed files with 2 additions and 1 deletions
|
@ -1763,7 +1763,8 @@ do_signal_stop(int signr)
|
||||||
* stop is always done with the siglock held,
|
* stop is always done with the siglock held,
|
||||||
* so this check has no races.
|
* so this check has no races.
|
||||||
*/
|
*/
|
||||||
if (t->state < TASK_STOPPED) {
|
if (!t->exit_state &&
|
||||||
|
!(t->state & (TASK_STOPPED|TASK_TRACED))) {
|
||||||
stop_count++;
|
stop_count++;
|
||||||
signal_wake_up(t, 0);
|
signal_wake_up(t, 0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue