From: Lucas De Marchi Date: Fri, 30 Dec 2011 16:15:40 +0000 (-0200) Subject: Ignore "already loaded" error in module_probe_insert_module() X-Git-Tag: v3~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e47c604525611397ee3172d8a20fab2043dd9564;p=thirdparty%2Fkmod.git Ignore "already loaded" error in module_probe_insert_module() It also fixes a leak in the error path. --- diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c index 0390250d..8e4a26d6 100644 --- a/libkmod/libkmod-module.c +++ b/libkmod/libkmod-module.c @@ -1015,8 +1015,14 @@ int module_probe_insert_module(struct kmod_module *mod, free(options); - if (err < 0 && (flags & KMOD_PROBE_STOP_ON_FAILURE)) - return err; + /* + * Ignore "already loaded" error. We need to check here because of + * race conditions. We checked first if module was already loaded but + * it may have been loaded between the check and the moment we try to + * insert it. + */ + if (err < 0 && err != -EEXIST && (flags & KMOD_PROBE_STOP_ON_FAILURE)) + goto finish; err = module_do_insmod_dep(post, flags, cb, rec, reccount);