aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/workqueue.c
diff options
context:
space:
mode:
authorOleg Nesterov <oleg@tv-sign.ru>2008-07-25 04:47:53 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-25 13:53:40 -0400
commit8de6d308bab4f67fcf953562f9f08f9527cad72d (patch)
treed896d82088d50a6c9d56300225605c5658f44549 /kernel/workqueue.c
parentef1ca236b8d645349ed6569598ae3f6c1b9511c0 (diff)
workqueues: schedule_on_each_cpu() can use schedule_work_on()
schedule_on_each_cpu() can use schedule_work_on() to avoid the code duplication. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r--kernel/workqueue.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index fe08a8512ddd..7cf430372f89 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -689,8 +689,7 @@ int schedule_on_each_cpu(work_func_t func)
689 struct work_struct *work = per_cpu_ptr(works, cpu); 689 struct work_struct *work = per_cpu_ptr(works, cpu);
690 690
691 INIT_WORK(work, func); 691 INIT_WORK(work, func);
692 set_bit(WORK_STRUCT_PENDING, work_data_bits(work)); 692 schedule_work_on(cpu, work);
693 __queue_work(per_cpu_ptr(keventd_wq->cpu_wq, cpu), work);
694 } 693 }
695 for_each_online_cpu(cpu) 694 for_each_online_cpu(cpu)
696 flush_work(per_cpu_ptr(works, cpu)); 695 flush_work(per_cpu_ptr(works, cpu));