Commit 0fcdcfbb authored by Linus Torvalds's avatar Linus Torvalds

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
parents 6d5e93c2 2d64672e
...@@ -6583,6 +6583,15 @@ F: include/linux/mfd/wm8400* ...@@ -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) ...@@ -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, ...@@ -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) ...@@ -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);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment