diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-07-16 06:36:55 +0900 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-07-16 06:36:55 +0900 |
commit | 8dcf5a80dd186ae1a19357e5a32f198bee107723 (patch) | |
tree | 67332389cbd1448807c48ab6fa8e010f87ca7bfb | |
parent | 3e0a396546450536679ae4d3bd70290ce0b0c79c (diff) | |
parent | d945b5e9f0e35cb56a3783d849b5f0f37da0a7f1 (diff) | |
download | linux-8dcf5a80dd186ae1a19357e5a32f198bee107723.tar.bz2 |
Merge branch 'for-4.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
Pull workqueue fix from Tejun Heo:
"The optimization for setting unbound worker affinity masks collided
with recent scheduler changes triggering warning messages.
This late pull request fixes the bug by removing the optimization"
* 'for-4.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
workqueue: Fix setting affinity of unbound worker threads
-rw-r--r-- | kernel/workqueue.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index e1c0e996b5ae..97e7b793df35 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -4600,15 +4600,11 @@ static void restore_unbound_workers_cpumask(struct worker_pool *pool, int cpu) if (!cpumask_test_cpu(cpu, pool->attrs->cpumask)) return; - /* is @cpu the only online CPU? */ cpumask_and(&cpumask, pool->attrs->cpumask, cpu_online_mask); - if (cpumask_weight(&cpumask) != 1) - return; /* as we're called from CPU_ONLINE, the following shouldn't fail */ for_each_pool_worker(worker, pool) - WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, - pool->attrs->cpumask) < 0); + WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, &cpumask) < 0); } /* |