From: Lucas De Marchi Date: Thu, 23 Feb 2012 18:37:13 +0000 (-0200) Subject: libkmod-module: don't treat "coming" as in-kernel X-Git-Tag: v6~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7cd664fbaead46b5f5ea4812cf9a7cbe6264eb7d;p=thirdparty%2Fkmod.git 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. --- diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c index 69f1265f..de252814 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;