mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 15:50:59 +07:00
kernel/signal.c: change do_signal_stop/do_sigaction to use while_each_thread()
Change do_signal_stop() and do_sigaction() to avoid next_thread() and use while_each_thread() instead. Signed-off-by: Oleg Nesterov <oleg@redhat.com> Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Kees Cook <keescook@chromium.org> Reviewed-by: Sameer Nanda <snanda@chromium.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
2e1f383582
commit
8d38f203b4
@ -2047,8 +2047,8 @@ static bool do_signal_stop(int signr)
|
|||||||
if (task_set_jobctl_pending(current, signr | gstop))
|
if (task_set_jobctl_pending(current, signr | gstop))
|
||||||
sig->group_stop_count++;
|
sig->group_stop_count++;
|
||||||
|
|
||||||
for (t = next_thread(current); t != current;
|
t = current;
|
||||||
t = next_thread(t)) {
|
while_each_thread(current, t) {
|
||||||
/*
|
/*
|
||||||
* Setting state to TASK_STOPPED for a group
|
* Setting state to TASK_STOPPED for a group
|
||||||
* stop is always done with the siglock held,
|
* stop is always done with the siglock held,
|
||||||
@ -3125,8 +3125,7 @@ int do_sigaction(int sig, struct k_sigaction *act, struct k_sigaction *oact)
|
|||||||
rm_from_queue_full(&mask, &t->signal->shared_pending);
|
rm_from_queue_full(&mask, &t->signal->shared_pending);
|
||||||
do {
|
do {
|
||||||
rm_from_queue_full(&mask, &t->pending);
|
rm_from_queue_full(&mask, &t->pending);
|
||||||
t = next_thread(t);
|
} while_each_thread(current, t);
|
||||||
} while (t != current);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user