38 lines
1.3 KiB
Diff
38 lines
1.3 KiB
Diff
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
|
|
|