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 /drivers/scsi/isci/host.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 'drivers/scsi/isci/host.c')
0 files changed, 0 insertions, 0 deletions