Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: workqueue: It is likely that WORKER_NOT_RUNNING is true MAINTAINERS: Add workqueue entry workqueue: check the allocation of system_unbound_wq
This commit is contained in:
commit
0fcdcfbbc9
|
@ -6583,6 +6583,15 @@ F: include/linux/mfd/wm8400*
|
||||||
F: include/sound/wm????.h
|
F: include/sound/wm????.h
|
||||||
F: sound/soc/codecs/wm*
|
F: sound/soc/codecs/wm*
|
||||||
|
|
||||||
|
WORKQUEUE
|
||||||
|
M: Tejun Heo <tj@kernel.org>
|
||||||
|
L: linux-kernel@vger.kernel.org
|
||||||
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git
|
||||||
|
S: Maintained
|
||||||
|
F: include/linux/workqueue.h
|
||||||
|
F: kernel/workqueue.c
|
||||||
|
F: Documentation/workqueue.txt
|
||||||
|
|
||||||
X.25 NETWORK LAYER
|
X.25 NETWORK LAYER
|
||||||
M: Andrew Hendry <andrew.hendry@gmail.com>
|
M: Andrew Hendry <andrew.hendry@gmail.com>
|
||||||
L: linux-x25@vger.kernel.org
|
L: linux-x25@vger.kernel.org
|
||||||
|
|
|
@ -661,7 +661,7 @@ void wq_worker_waking_up(struct task_struct *task, unsigned int cpu)
|
||||||
{
|
{
|
||||||
struct worker *worker = kthread_data(task);
|
struct worker *worker = kthread_data(task);
|
||||||
|
|
||||||
if (likely(!(worker->flags & WORKER_NOT_RUNNING)))
|
if (!(worker->flags & WORKER_NOT_RUNNING))
|
||||||
atomic_inc(get_gcwq_nr_running(cpu));
|
atomic_inc(get_gcwq_nr_running(cpu));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -687,7 +687,7 @@ struct task_struct *wq_worker_sleeping(struct task_struct *task,
|
||||||
struct global_cwq *gcwq = get_gcwq(cpu);
|
struct global_cwq *gcwq = get_gcwq(cpu);
|
||||||
atomic_t *nr_running = get_gcwq_nr_running(cpu);
|
atomic_t *nr_running = get_gcwq_nr_running(cpu);
|
||||||
|
|
||||||
if (unlikely(worker->flags & WORKER_NOT_RUNNING))
|
if (worker->flags & WORKER_NOT_RUNNING)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* this can only happen on the local cpu */
|
/* this can only happen on the local cpu */
|
||||||
|
@ -3692,7 +3692,8 @@ static int __init init_workqueues(void)
|
||||||
system_nrt_wq = alloc_workqueue("events_nrt", WQ_NON_REENTRANT, 0);
|
system_nrt_wq = alloc_workqueue("events_nrt", WQ_NON_REENTRANT, 0);
|
||||||
system_unbound_wq = alloc_workqueue("events_unbound", WQ_UNBOUND,
|
system_unbound_wq = alloc_workqueue("events_unbound", WQ_UNBOUND,
|
||||||
WQ_UNBOUND_MAX_ACTIVE);
|
WQ_UNBOUND_MAX_ACTIVE);
|
||||||
BUG_ON(!system_wq || !system_long_wq || !system_nrt_wq);
|
BUG_ON(!system_wq || !system_long_wq || !system_nrt_wq ||
|
||||||
|
!system_unbound_wq);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
early_initcall(init_workqueues);
|
early_initcall(init_workqueues);
|
||||||
|
|
Loading…
Reference in New Issue