Messages in this thread | | | From | Keith Owens <> | Subject | Re: [linux-usb] Re: [patch] drivers/usb/usb.c: auto loading of USB bus driver | Date | Wed, 22 Dec 1999 12:06:16 +1100 |
| |
On Tue, 21 Dec 1999 23:56:52 +0000 (GMT), Riley Williams <rhw@MemAlpha.CX> wrote: >Somebody wrote > > I can now see the problem with post-install rules, but I still > > find magic module aliases icky. One thing that crossed my mind > > was to make rmmod -a a bit smarter: if it notices that a module > > that sits above another (i.e. specified with the 'above' keyword > > in modules.conf) disappears, it could try to remove the lower > > module. But then that requires that everyone move to a version > > of modutils that (a) supports the 'above' keyword and (b) is > > smart about removing modules like that. > >Surely a better option would be to have rmmod remove modules in >sequence, and not consider any module until it has already considered >all modules that module is used by. That would implicitly result in >the removal of the whole chain of modules rather than just the one at >the top as currently appears to be the case.
insmod builds a dependency chain and rmmod honours that chain when removing modules. It has done this since day 1. But only if there is an explicit reference from one module to another.
The problem with usb (as I understand it, and it would be nice if one of the usb developers explicitly defined the problem) is there is no direct reference to usb-uhci, or whatever usb bus type is being used. So we have to fall back on module aliases or manual entries in modules.conf to get the bus module loaded.
One possibility is to add these lines to modules.conf[1].
below usb-scsi usb-bus below usb-mouse usb-bus below usb-xyz usb-bus add probeall usb-bus usb-uhci add probeall usb-bus usb-someother-busa add probeall usb-bus usb-yet-another-bus
That automatically probes for all the different bus types whenever a usb module is loaded. At the moment, the above and below commands do not create a dependency chain but modutils can be changed to do that. IMHO above and below should create dependencies by default, with an option not to create the dependency.
[1] One problem with modules.conf is keeping it up to date with the kernel. What about /proc/sys/modules.conf where kernel code can register its own special requirements? modprobe reads /proc/sys/modules.conf/first then /etc/modules.conf then /proc/sys/modules.conf/last to build its database.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |