hi Greg: >> > The linker order determines the order of the init functions. >> Would you mind to let us know where and how it do so? > > I don't understand, what is the problem with the existing code? What > are you trying to solve here? Is the linking order somehow not working > properly? No. there is no problem with so far kernel, it just suddenly pop to my mind when I trace usb kernel source. in kernel do_initcalls will run the initial flow with following order. if usb modules are in the same level, where it determine which one to go first? appreciate ur kind help, static char *initcall_level_names[] __initdata = { "early", "core", "postcore", "arch", "subsys", "fs", "device", "late", }; -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html