Messages in this thread | | | From | Sameer Nanda <> | Date | Fri, 22 Nov 2013 12:17:16 -0800 | Subject | Re: [PATCH 3/3] signals: change do_signal_stop/do_sigaction to use while_each_thread() |
| |
On Fri, Nov 22, 2013 at 11:18 AM, Oleg Nesterov <oleg@redhat.com> wrote: > 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> Reviewed-by: Sameer Nanda <snanda@chromium.org>
> --- > kernel/signal.c | 7 +++---- > 1 files changed, 3 insertions(+), 4 deletions(-) > > diff --git a/kernel/signal.c b/kernel/signal.c > index ded28b9..086071d 100644 > --- a/kernel/signal.c > +++ b/kernel/signal.c > @@ -2047,8 +2047,8 @@ static bool do_signal_stop(int signr) > if (task_set_jobctl_pending(current, signr | gstop)) > sig->group_stop_count++; > > - for (t = next_thread(current); t != current; > - t = next_thread(t)) { > + t = current; > + while_each_thread(current, t) { > /* > * Setting state to TASK_STOPPED for a group > * 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); > do { > rm_from_queue_full(&mask, &t->pending); > - t = next_thread(t); > - } while (t != current); > + } while_each_thread(current, t); > } > } > > -- > 1.5.5.1 >
-- Sameer
| |