version 6
This commit is contained in:
parent
8fd97a37d0
commit
cf0a7a3b72
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
/kmod-5.tar.xz
|
/kmod-6.tar.xz
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
From 7cd664fbaead46b5f5ea4812cf9a7cbe6264eb7d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lucas De Marchi <lucas.demarchi@profusion.mobi>
|
|
||||||
Date: Thu, 23 Feb 2012 16:37:13 -0200
|
|
||||||
Subject: [PATCH] libkmod-module: don't treat "coming" as in-kernel
|
|
||||||
|
|
||||||
Running two instances of modprobe with the same module should both
|
|
||||||
succeed or both fail:
|
|
||||||
|
|
||||||
modprobe foo&; modprobe foo;
|
|
||||||
|
|
||||||
Previously if foo failed to be inserted by the first call, the second one
|
|
||||||
could return 0 because it may have occurred while the first one was being
|
|
||||||
processed by kernel (thus marked as "coming").
|
|
||||||
|
|
||||||
Now we simply don't check by "coming" in order to decide if we need to
|
|
||||||
call init_module(). module-init-tools used to spin calling
|
|
||||||
usleep(100000), but calls to init_module() are already synchronous.
|
|
||||||
Therefore let kernel synchronize the calls.
|
|
||||||
---
|
|
||||||
libkmod/libkmod-module.c | 1 -
|
|
||||||
1 files changed, 0 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
|
|
||||||
index 69f1265..de25281 100644
|
|
||||||
--- a/libkmod/libkmod-module.c
|
|
||||||
+++ b/libkmod/libkmod-module.c
|
|
||||||
@@ -110,7 +110,6 @@ static inline bool module_is_inkernel(struct kmod_module *mod)
|
|
||||||
{
|
|
||||||
int state = kmod_module_get_initstate(mod);
|
|
||||||
if (state == KMOD_MODULE_LIVE ||
|
|
||||||
- state == KMOD_MODULE_COMING ||
|
|
||||||
state == KMOD_MODULE_BUILTIN)
|
|
||||||
return true;
|
|
||||||
else
|
|
||||||
--
|
|
||||||
1.7.9
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
|||||||
From 269de2e0bf5011072da2f40f4f2d4023fad696b9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lucas De Marchi <lucas.demarchi@profusion.mobi>
|
|
||||||
Date: Tue, 7 Feb 2012 09:48:59 -0200
|
|
||||||
Subject: [PATCH 01/10] libkmod-module: probe: Fix ignore-loaded flag not
|
|
||||||
being applied
|
|
||||||
|
|
||||||
---
|
|
||||||
TODO | 3 +++
|
|
||||||
libkmod/libkmod-module.c | 3 ++-
|
|
||||||
2 files changed, 5 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/TODO b/TODO
|
|
||||||
index 23d7c76..6ab11f1 100644
|
|
||||||
--- a/TODO
|
|
||||||
+++ b/TODO
|
|
||||||
@@ -38,6 +38,9 @@ Features:
|
|
||||||
|
|
||||||
* Stop using system() inside the library and use fork + exec instead
|
|
||||||
|
|
||||||
+* Add tests for --show-depends: we need to first trap calls to
|
|
||||||
+ kmod_module_get_path(), because it's printed to stdout/stderr.
|
|
||||||
+
|
|
||||||
Known Bugs:
|
|
||||||
===========
|
|
||||||
|
|
||||||
diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
|
|
||||||
index 0af3e2e..b5eb7c9 100644
|
|
||||||
--- a/libkmod/libkmod-module.c
|
|
||||||
+++ b/libkmod/libkmod-module.c
|
|
||||||
@@ -1132,7 +1132,8 @@ KMOD_EXPORT int kmod_module_probe_insert_module(struct kmod_module *mod,
|
|
||||||
if (mod == NULL)
|
|
||||||
return -ENOENT;
|
|
||||||
|
|
||||||
- if (module_is_inkernel(mod)) {
|
|
||||||
+ if (!(flags & KMOD_PROBE_IGNORE_LOADED)
|
|
||||||
+ && module_is_inkernel(mod)) {
|
|
||||||
if (flags & KMOD_PROBE_FAIL_ON_LOADED)
|
|
||||||
return -EEXIST;
|
|
||||||
else
|
|
||||||
--
|
|
||||||
1.7.9
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
|||||||
From 8cd0f9e4f9f5c093136a7a2c0c2998b9dd203161 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lucas De Marchi <lucas.demarchi@profusion.mobi>
|
|
||||||
Date: Sat, 11 Feb 2012 19:45:29 -0200
|
|
||||||
Subject: [PATCH] libkmod-module: probe: fix infinite loop with softdeps
|
|
||||||
|
|
||||||
If a softdep depends on a module in the dependency list of the module
|
|
||||||
being inserted, we would enter and infinite loop.
|
|
||||||
|
|
||||||
Move the "mod->visited = true" assignment to the proper place, hoping it
|
|
||||||
didn't break other use cases. This is a bug that comes and goes every
|
|
||||||
now and then. Since we have a testsuite now, a test for this should be
|
|
||||||
written.
|
|
||||||
---
|
|
||||||
libkmod/libkmod-module.c | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
|
|
||||||
index b5eb7c9..835896f 100644
|
|
||||||
--- a/libkmod/libkmod-module.c
|
|
||||||
+++ b/libkmod/libkmod-module.c
|
|
||||||
@@ -1013,7 +1013,6 @@ static int __kmod_module_fill_softdep(struct kmod_module *mod,
|
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
*list = l;
|
|
||||||
- mod->visited = true;
|
|
||||||
mod->ignorecmd = (pre != NULL || post != NULL);
|
|
||||||
|
|
||||||
kmod_list_foreach(l, post) {
|
|
||||||
@@ -1043,6 +1042,7 @@ static int __kmod_module_get_probe_list(struct kmod_module *mod,
|
|
||||||
mod->name);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
+ mod->visited = true;
|
|
||||||
|
|
||||||
dep = kmod_module_get_dependencies(mod);
|
|
||||||
kmod_list_foreach(l, dep) {
|
|
||||||
--
|
|
||||||
1.7.9
|
|
||||||
|
|
21
kmod.spec
21
kmod.spec
@ -1,15 +1,12 @@
|
|||||||
Name: kmod
|
Name: kmod
|
||||||
Version: 5
|
Version: 6
|
||||||
Release: 8%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Linux kernel module management utilities
|
Summary: Linux kernel module management utilities
|
||||||
|
|
||||||
Group: System Environment/Kernel
|
Group: System Environment/Kernel
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
#TODO: Change the following URLs once there is wiki write access
|
URL: http://git.kernel.org/?p=utils/kernel/kmod/kmod.git;a=summary
|
||||||
#URL: http://modules.wiki.kernel.org/
|
Source0: ftp://ftp.kernel.org/pub/linux/utils/kernel/kmod/%{name}-%{version}.tar.xz
|
||||||
URL: http://git.profusion.mobi/cgit.cgi/kmod.git/
|
|
||||||
#TODO: The following URL will be moving to kernel.org eventually
|
|
||||||
Source0: http://packages.profusion.mobi/kmod/%{name}-%{version}.tar.xz
|
|
||||||
Exclusiveos: Linux
|
Exclusiveos: Linux
|
||||||
|
|
||||||
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||||
@ -20,9 +17,6 @@ BuildRequires: xz-devel
|
|||||||
Provides: module-init-tools = 4.0-1
|
Provides: module-init-tools = 4.0-1
|
||||||
Obsoletes: module-init-tools < 4.0-1
|
Obsoletes: module-init-tools < 4.0-1
|
||||||
Provides: /sbin/modprobe
|
Provides: /sbin/modprobe
|
||||||
Patch1: 0001-libkmod-module-probe-Fix-ignore-loaded-flag-not-bein.patch
|
|
||||||
Patch2: 0001-libkmod-module-probe-fix-infinite-loop-with-softdeps.patch
|
|
||||||
Patch3: 0001-libkmod-module-don-t-treat-coming-as-in-kernel.patch
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
The kmod package provides various programs needed for automatic
|
The kmod package provides various programs needed for automatic
|
||||||
@ -50,9 +44,6 @@ applications that wish to load or unload Linux kernel modules.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch1 -p1
|
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export V=1
|
export V=1
|
||||||
@ -106,6 +97,10 @@ mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/modprobe.d
|
|||||||
%{_libdir}/libkmod.so
|
%{_libdir}/libkmod.so
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Mar 04 2012 Kay Sievers <kay@redhat.com> - 6-1
|
||||||
|
- update to version 6
|
||||||
|
- remove all patches, they are included in the release
|
||||||
|
|
||||||
* Fri Feb 24 2012 Kay Sievers <kay@redhat.com> - 5-8
|
* Fri Feb 24 2012 Kay Sievers <kay@redhat.com> - 5-8
|
||||||
- try to address brc#771285
|
- try to address brc#771285
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user