On 9/10/09, Michal Marek <[email protected]> wrote:
> The kernel installs a modules.builtin file listing all builtin
> modules. Let depmod generate a modules.builtin.bin file and use
> this in modprobe: If a module is not found in modules.dep or
> modules.alias, check if the module is builtin and print
> "builtin <module>" instead of trying to load anything.
> It is done in this order to not slow down the common case.
>
> Signed-off-by: Michal Marek <[email protected]>

Cool.  I've seen the problem this fixes a couple of times.

Hmm, the last time I saw this was in a debian initramfs.  I guess you
know that modules.order and now modules.builtin need to be copied into
the initramfs, so SuSE will do that.  Do update-initramfs (debian) and
dracut (the new fedora initramfs project) know that?

Might we need more such files in future?  I guess the future-proof way
is to copy modules.* into the initramfs staging directory before
running depmod.

> @@ -1331,6 +1349,11 @@ int do_modprobe(char *modname,
>                                         modname, 0, flags & mit_remove,
>                                         &modoptions, &commands,
>                                         &aliases, &blacklist);
> +                     /* builtin module? */
> +                     if (!aliases && module_builtin(dirname, modname) == 1) {
> +                             info("builtin %s\n", modname);
> +                             return 0;
> +                     }
>               }
>       }

It looks like "modprobe -r $builtin_module" will return success.  I
think it should fail and print an error instead.  That would be
analogous to the situation where a module cannot be unloaded because
it is still in use.

Similarly "modprobe --first-time $builtin-module" should cause an error.

If the above issues are fixed, builtin modules should end up being
treated as close as possible to loadable modules, and I will be very
happy :-).

I thought the "builtin" message was inconsistent at first, because
"modprobe -v $module" is currently silent if $module is already
loaded.  But I see it is useful because "lsmod" won't work for builtin
modules.

Thanks!
Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-modules" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to