/* This function used to run the workqueues itself. Now we just wait for the helper threads to do it.  */
void flush_workqueue(struct workqueue_struct *wq)
/* This function used to run the workqueues itself. Now we just wait for the helper threads to do it.  */
void flush_workqueue(struct workqueue_struct *wq)
{
	const struct cpumask *cpu_map = wq_cpu_map(wq);
	int cpu;
	might_sleep();
	lock_map_acquire(&wq->lockdep_map);
	lock_map_release(&wq->lockdep_map);
	for_each_cpu(cpu, cpu_map)
		flush_cpu_workqueue(per_cpu_ptr(wq->cpu_wq, cpu));
}