[lkml]   [2007]   [May]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: 2.6.22-rc1: Broken suspend on SMP with tifm
On 05/14, Rafael J. Wysocki wrote:
> Hmm, I guess we could add an additional mutex that would only be taken in
> flush_workqueue() and in _cpu_down()/_cpu_up() via workqueue_cpu_callback()

This will deadlock if work->func() does flush_workqueue(), because it may
run when _cpu_down() holds this lock (note that it doesn't help if we
re-introduce take_over_work()).

This is a reason why mutex_lock(&workqueue_mutex) was removed from

> It doesn't seem to be a good idea to run flush_workqueue() while CPUs are being
> taken up and down anyway.

We can freeze all tasks :) Otherwise we can't forbid them to call

flush_workqueue() is OK. create/destroy is a problem.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2007-05-14 00:35    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean