Re: [PATCH 3/4] kthreads: rework kthread_stop()

From: Andrew Morton
Date: Fri Jan 30 2009 - 16:49:30 EST


On Fri, 30 Jan 2009 13:33:58 +0100
Oleg Nesterov <oleg@xxxxxxxxxx> wrote:

> int kthread_stop(struct task_struct *k)
> {
> + struct kthread *kthread;
> int ret;
>
> - mutex_lock(&kthread_stop_lock);
> -
> - /* It could exit after stop_info.k set, but before wake_up_process. */
> - get_task_struct(k);
> -
> trace_sched_kthread_stop(k);
> + get_task_struct(k);
>
> - /* Must init completion *before* thread sees kthread_stop_info.k */
> - init_completion(&kthread_stop_info.done);
> - smp_wmb();
> + kthread = to_kthread(k);
> + barrier(); /* it might have exited */

Why the change from smp_wmb() to plain old barrier()?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/