mirror of
https://github.com/void-linux/void-packages.git
synced 2025-07-29 08:52:56 +02:00
kmod: add two upstream patches for depmod (via Arch).
This commit is contained in:
parent
4f382ccfc7
commit
7f8508da77
3 changed files with 73 additions and 1 deletions
|
@ -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'
|
# Template file for 'kmod'
|
||||||
pkgname=kmod
|
pkgname=kmod
|
||||||
version=11
|
version=11
|
||||||
revision=1
|
revision=2
|
||||||
build_style=gnu-configure
|
build_style=gnu-configure
|
||||||
configure_args="--with-zlib --with-xz"
|
configure_args="--with-zlib --with-xz"
|
||||||
makedepends="pkg-config zlib-devel liblzma-devel libxslt"
|
makedepends="pkg-config zlib-devel liblzma-devel libxslt"
|
||||||
|
|
Loading…
Add table
Reference in a new issue