diff --git a/[refs] b/[refs] index 6aec3b079e69..07b08f6a58ae 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: db700897224b5ebdf852f2d38920ce428940d059 +refs/heads/master: 8616a89ab761239c963eea3a63be383f127cc7e8 diff --git a/trunk/kernel/workqueue.c b/trunk/kernel/workqueue.c index ee41cf857d55..5fbffd302eb5 100644 --- a/trunk/kernel/workqueue.c +++ b/trunk/kernel/workqueue.c @@ -690,7 +690,8 @@ int schedule_on_each_cpu(work_func_t func) set_bit(WORK_STRUCT_PENDING, work_data_bits(work)); __queue_work(per_cpu_ptr(keventd_wq->cpu_wq, cpu), work); } - flush_workqueue(keventd_wq); + for_each_online_cpu(cpu) + flush_work(per_cpu_ptr(works, cpu)); put_online_cpus(); free_percpu(works); return 0;