diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-09-12 07:16:54 +0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-09-12 07:16:54 +0800 | 
| commit | 0bd1189e239c76eb3a50e458548fbe7e4a5dfff1 (patch) | |
| tree | 8c46cfcd8ab9d94bbcfaaf5969a79b6b11914042 /lib/bug.c | |
| parent | 274a2f5ddb3e8bf67e561574e6529a65a4039240 (diff) | |
| parent | ee378aa49b594da9bda6a2c768cc5b2ad585f911 (diff) | |
Merge branch 'for-3.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
Pull workqueue fixes from Tejun Heo:
 "It's later than I'd like but well the timing just didn't work out this
  time.
  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.
  There's another workqueue related regression which reported a few days
  ago:
    https://bugzilla.kernel.org/show_bug.cgi?id=47301
  It's a bit of head scratcher but there is a semi-reliable reproduce
  case, so I'm hoping to resolve it soonish."
* 'for-3.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
  workqueue: fix possible idle worker depletion across CPU hotplug
  workqueue: restore POOL_MANAGING_WORKERS
  workqueue: fix possible deadlock in idle worker rebinding
  workqueue: move WORKER_REBIND clearing in rebind_workers() to the end of the function
  workqueue: UNBOUND -> REBIND morphing in rebind_workers() should be atomic
Diffstat (limited to 'lib/bug.c')
0 files changed, 0 insertions, 0 deletions
