]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
libkmod: Prefer builtin index over builtin.alias
authorLucas De Marchi <lucas.demarchi@intel.com>
Thu, 10 Feb 2022 02:21:03 +0000 (18:21 -0800)
committerLucas De Marchi <lucas.demarchi@intel.com>
Sat, 12 Feb 2022 06:06:33 +0000 (22:06 -0800)
The modules.builtin.alias.bin is way larger than the
modules.builtin.bin.  On a normal "distro kernel":

21k modules.builtin.alias.bin
11k modules.builtin.bin

From the kernel we get both modules.builtin and modules.builtin.modinfo.
depmod generates modules.builtin.bin and modules.builtin.alias.bin
from them respectively. modules.bultin is not going away: it's not
deprecated by the new index added. So, let's just stop duplicating the
information inside modules.builtin.alias.bin and just use the other
index.

libkmod/libkmod-module.c

index 6f7747c8842d8f9ab87d4437c76aa32698cd54fe..64233397555b5ce8b5039a83a8ae1f60cc346bcb 100644 (file)
@@ -576,13 +576,15 @@ KMOD_EXPORT int kmod_module_new_from_lookup(struct kmod_ctx *ctx,
        err = kmod_lookup_alias_from_aliases_file(ctx, alias, list);
        CHECK_ERR_AND_FINISH(err, fail, list, finish);
 
+       DBG(ctx, "lookup modules.builtin %s\n", alias);
+       err = kmod_lookup_alias_from_builtin_file(ctx, alias, list);
+       CHECK_ERR_AND_FINISH(err, fail, list, finish);
+
        DBG(ctx, "lookup modules.builtin.modinfo %s\n", alias);
        err = kmod_lookup_alias_from_kernel_builtin_file(ctx, alias, list);
-       if (err == -ENOSYS) {
-               /* Optional index missing, try the old one */
-               DBG(ctx, "lookup modules.builtin %s\n", alias);
-               err = kmod_lookup_alias_from_builtin_file(ctx, alias, list);
-       }
+       /* Optional index missing, ignore */
+       if (err == -ENOSYS)
+               err = 0;
        CHECK_ERR_AND_FINISH(err, fail, list, finish);