On Thu, Jan 04, 2007 at 09:18:50AM -0800, Andrew Morton wrote: > This? This can still lead to the problem spotted by Oleg here:
http://lkml.org/lkml/2006/12/30/37 and you would need a similar patch he posted there. > void fastcall flush_workqueue(struct workqueue_struct *wq) > { > - mutex_lock(&workqueue_mutex); > + preempt_disable(); /* CPU hotplug */ > if (is_single_threaded(wq)) { > /* Always use first cpu's area. */ > flush_cpu_workqueue(per_cpu_ptr(wq->cpu_wq, singlethread_cpu)); > @@ -459,7 +463,7 @@ void fastcall flush_workqueue(struct wor > for_each_online_cpu(cpu) > flush_cpu_workqueue(per_cpu_ptr(wq->cpu_wq, cpu)); > } > - mutex_unlock(&workqueue_mutex); > + preempt_enable(); > } > EXPORT_SYMBOL_GPL(flush_workqueue); -- Regards, vatsa - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/