Hi Tejun, Today's linux-next merge of the workqueues tree got a conflict in kernel/workqueue.c between commit 12997d1a999c ("Revert "workqueue: allow work_on_cpu() to be called recursively"") from Linus' tree and commit 440a11360326 ("workqueue: Calling destroy_work_on_stack() to pair with INIT_WORK_ONSTACK()") from the workqueues tree. I fixed it up (see below) and can carry the fix as necessary (no action is required). -- Cheers, Stephen Rothwell sfr@canb.auug.org.au diff --cc kernel/workqueue.c index b010eac595d2,fdeec6e9d025..000000000000 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@@ -4827,7 -4833,15 +4828,8 @@@ long work_on_cpu(int cpu, long (*fn)(vo INIT_WORK_ONSTACK(&wfc.work, work_for_cpu_fn); schedule_work_on(cpu, &wfc.work); - - /* - * The work item is on-stack and can't lead to deadlock through - * flushing. Use __flush_work() to avoid spurious lockdep warnings - * when work_on_cpu()s are nested. - */ - __flush_work(&wfc.work); - + flush_work(&wfc.work); + destroy_work_on_stack(&wfc.work); return wfc.ret; } EXPORT_SYMBOL_GPL(work_on_cpu);