depmod: fix hash lookup by relpath instead of uncrelpath
authorLucas De Marchi <lucas.demarchi@profusion.mobi>
Fri, 16 Nov 2012 13:35:30 +0000 (11:35 -0200)
committerLucas De Marchi <lucas.demarchi@profusion.mobi>
Fri, 16 Nov 2012 13:39:41 +0000 (11:39 -0200)
We index modules in depmod by it's uncompressed relative path, not
relative path. We didn't notice this bug before since this function is
only triggered if we release a module to be replaced by one of higher
priority.

Also fix a leftover log message referring to relpath instead of
uncrelpath.

tools/depmod.c

index cc9346f..aafe66b 100644 (file)
@@ -1114,7 +1114,7 @@ static int depmod_module_add(struct depmod *depmod, struct kmod_module *kmod)
                                      mod->uncrelpath, mod);
                if (err < 0) {
                        ERR("hash_add_unique %s: %s\n",
-                           mod->relpath, strerror(-err));
+                           mod->uncrelpath, strerror(-err));
                        hash_del(depmod->modules_by_name, mod->modname);
                        goto fail;
                }
@@ -1134,8 +1134,8 @@ static int depmod_module_del(struct depmod *depmod, struct mod *mod)
 {
        DBG("del %p kmod=%p, path=%s\n", mod, mod->kmod, mod->path);
 
-       if (mod->relpath != NULL)
-               hash_del(depmod->modules_by_uncrelpath, mod->relpath);
+       if (mod->uncrelpath != NULL)
+               hash_del(depmod->modules_by_uncrelpath, mod->uncrelpath);
 
        hash_del(depmod->modules_by_name, mod->modname);