On Tue, 10 Sep 2013, Tom Gundersen wrote: > Support for specifying soft dependencies in the modules themselves was > introduced in commit 7cb14ba. > > In Arch we have always been shipping a module.d(5) fragment ordering ohci/uhci > after ehci. If this ordering is really necessary, it would be great to move it > to the kernel and getting the correct fragment generated by depmod. The ordering is more of a recommendation than a necessity. Systems should work oksy if the modules are loaded in the wrong order. The only issue if the drivers are loaded in the wrong order is that full- and low-speed devices will end up being detected and enumerated twice, with a disconnection in between. This can result in disconcerting messages appearing in the system log. In theory, it is possible for a problem to arise. For example, suppose a full-speed flash drive is plugged in when the system starts up. When uhci-hcd or ohci-hcd gets loaded, the drive will be detected and it may even be mounted. Then when ehci-hcd loads, the drive will get disconnected and reconnected. Any open file references to the original mount will be orphaned. > Signed-off-by: Tom Gundersen <teg@xxxxxxx> > Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > --- > drivers/usb/host/ohci-hcd.c | 1 + > drivers/usb/host/uhci-hcd.c | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c > index 8f6b695..783b50a 100644 > --- a/drivers/usb/host/ohci-hcd.c > +++ b/drivers/usb/host/ohci-hcd.c > @@ -1171,6 +1171,7 @@ EXPORT_SYMBOL_GPL(ohci_init_driver); > MODULE_AUTHOR (DRIVER_AUTHOR); > MODULE_DESCRIPTION(DRIVER_DESC); > MODULE_LICENSE ("GPL"); > +MODULE_SOFTDEP("pre: ehci_hcd"); > > #if defined(CONFIG_ARCH_SA1100) && defined(CONFIG_SA1111) > #include "ohci-sa1111.c" > diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c > index 4a86b63..c2babf3 100644 > --- a/drivers/usb/host/uhci-hcd.c > +++ b/drivers/usb/host/uhci-hcd.c > @@ -937,3 +937,4 @@ module_exit(uhci_hcd_cleanup); > MODULE_AUTHOR(DRIVER_AUTHOR); > MODULE_DESCRIPTION(DRIVER_DESC); > MODULE_LICENSE("GPL"); > +MODULE_SOFTDEP("pre: ehci_hcd"); Where is MODULE_SOFTDEP defined? It isn't mentioned in any .h files in my kernel tree. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-modules" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html