kmod: add two upstream patches for depmod (via Arch).
This commit is contained in:
parent
4f382ccfc7
commit
7f8508da77
|
@ -0,0 +1,42 @@
|
|||
From 06294621a944e4611e15ce8201df80870e052e7d Mon Sep 17 00:00:00 2001
|
||||
From: Lucas De Marchi <lucas.demarchi@profusion.mobi>
|
||||
Date: Fri, 16 Nov 2012 11:35:30 -0200
|
||||
Subject: [PATCH 1/2] 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.
|
||||
---
|
||||
tools/depmod.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/tools/depmod.c b/tools/depmod.c
|
||||
index cc9346f..aafe66b 100644
|
||||
--- tools/depmod.c
|
||||
+++ 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);
|
||||
|
||||
--
|
||||
1.8.0
|
|
@ -0,0 +1,30 @@
|
|||
From 02c64df3c2b33880b18d3f4aba9fa8e48e5ca904 Mon Sep 17 00:00:00 2001
|
||||
From: Lucas De Marchi <lucas.demarchi@profusion.mobi>
|
||||
Date: Fri, 16 Nov 2012 12:05:42 -0200
|
||||
Subject: [PATCH 2/2] depmod: fix asserting mod->kmod == NULL
|
||||
|
||||
If we are replacing a lower priority module (due to its location), we
|
||||
already created a kmod_module, but didn't open the file for reading its
|
||||
symbols. This means mod->kmod won't be NULL, and this is just ok. Since
|
||||
all the functions freeing stuff below the previous assert already takes
|
||||
NULL into consideration, it's safe to just unref mod->kmod and let the
|
||||
right thing happens.
|
||||
---
|
||||
tools/depmod.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tools/depmod.c b/tools/depmod.c
|
||||
index aafe66b..7bbdcd3 100644
|
||||
--- tools/depmod.c
|
||||
+++ tools/depmod.c
|
||||
@@ -977,7 +977,7 @@ static void mod_free(struct mod *mod)
|
||||
{
|
||||
DBG("free %p kmod=%p, path=%s\n", mod, mod->kmod, mod->path);
|
||||
array_free_array(&mod->deps);
|
||||
- assert(mod->kmod == NULL);
|
||||
+ kmod_module_unref(mod->kmod);
|
||||
kmod_module_info_free_list(mod->info_list);
|
||||
kmod_module_dependency_symbols_free_list(mod->dep_sym_list);
|
||||
free(mod->uncrelpath);
|
||||
--
|
||||
1.8.0
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'kmod'
|
||||
pkgname=kmod
|
||||
version=11
|
||||
revision=1
|
||||
revision=2
|
||||
build_style=gnu-configure
|
||||
configure_args="--with-zlib --with-xz"
|
||||
makedepends="pkg-config zlib-devel liblzma-devel libxslt"
|
||||
|
|
Loading…
Reference in New Issue