On Thu, Apr 11, 2013 at 10:17:17PM +0300, Michael S. Tsirkin wrote: > Hmm no, there's a real deadlock here: you are > trying to flush from work1 from within work2 running > on same workqueue. work2 can't event start running. > The problem is not annotation. No, that has changed years ago with introduction of cmwq. System workqueues are now expected to have high enough maximum concurrency to not cause deadlock as long as memory for worker creation is available, so as long as your work item doesn't directly sit in the memory reclaim path, it's safe to flush a different work item running on the same workqueue with sufficiently high max_active. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html