On Mon, 14 Jan 2013, Linus Torvalds wrote: > > - from view of driver, introducing async_synchronize_full() after > > do_one_initcall() inside do_init_module() is like a sync probe > > for drivers built as module, and cause this kind of deadlock easily. > > > > So could we revert the commit and fix the previous problems just > > case by case? or other better fix? > > There's no way in hell we take a "fix things one by one" approach. > It's not going to work. And your suggestion seems to not do async > discovery of devices in general, which is a *much* worse fix than > anything else. It's just crazy. > > But there are other approaches we might take. We might move the call to > > async_synchronize_full(); > > to other places. For example, maybe we're better off doing it at > block/char device open instead?
How about skipping that call if the current thread is one of the async helpers? Is it possible to detect when that happens? Or maybe such a check should go inside async_synchronize_full() itself. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/