From: Lucas De Marchi Date: Fri, 16 Nov 2012 13:35:30 +0000 (-0200) Subject: depmod: fix hash lookup by relpath instead of uncrelpath X-Git-Tag: v12~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=06294621a944e4611e15ce8201df80870e052e7d;p=thirdparty%2Fkmod.git depmod: fix hash lookup by relpath instead of uncrelpath 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. --- diff --git a/tools/depmod.c b/tools/depmod.c index cc9346fe..aafe66b1 100644 --- a/tools/depmod.c +++ b/tools/depmod.c @@ -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);