Hello, Linus.

Please consider pulling from the following branch to receive workqueue
fixes.  It's later than I'd like but well the timing just didn't work
out this time.

  git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git for-3.6-fixes

There are three bug fixes.  One from before 3.6-rc1 and two from the
new CPU hotplug code.  Kudos to Lai for discovering all of them and
providing fixes.

* Atomicity bug when clearing a flag and setting another.  The two
  operation should have been atomic but wasn't.  This bug has existed
  for a long time but is unlikely to have actually happened.  Fix is
  safe.  Marked for -stable.

* If CPU hotplug cycles happen back-to-back before workers finish the
  previous cycle, the states could get out of sync and it could get
  stuck.  Fixed by waiting for workers to complete before finishing
  hotplug cycle.

* While CPU hotplug is in progress, idle workers could be depleted
  which can then lead to deadlock.  I think both happening together is
  highly unlikely but still better to fix it and the fix isn't too
  scary.

Lai Jiangshan (3):
      workqueue: UNBOUND -> REBIND morphing in rebind_workers() should be atomic
      workqueue: restore POOL_MANAGING_WORKERS
      workqueue: fix possible idle worker depletion across CPU hotplug

Tejun Heo (2):
      workqueue: move WORKER_REBIND clearing in rebind_workers() to the end of 
the function
      workqueue: fix possible deadlock in idle worker rebinding

 kernel/workqueue.c |  110 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 89 insertions(+), 21 deletions(-)

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to