diff options
-rw-r--r-- | kernel/workqueue.c | 3 |
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)); |