diff options
Diffstat (limited to 'testing/kmod/fix-error-path-when-loading-deps.patch')
-rw-r--r-- | testing/kmod/fix-error-path-when-loading-deps.patch | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/testing/kmod/fix-error-path-when-loading-deps.patch b/testing/kmod/fix-error-path-when-loading-deps.patch new file mode 100644 index 000000000..0046d19b9 --- /dev/null +++ b/testing/kmod/fix-error-path-when-loading-deps.patch @@ -0,0 +1,35 @@ +From cb0d0b72128ac566aad9a72800c5a64af66f0b6e Mon Sep 17 00:00:00 2001 +From: Lucas De Marchi <lucas.demarchi@profusion.mobi> +Date: Sun, 8 Jan 2012 18:08:05 -0200 +Subject: [PATCH] modprobe: fix error path when loading dependencies + +demarchi> scenario is the following: +demarchi> modA depends on modB and modC +demarchi> if there's a race when trying to insert a dependency of a module, say + modB, it will stop loading all the modules +demarchi> it should check by "module already loaded error" +demarchi> like it does for modA +--- + tools/kmod-modprobe.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/tools/kmod-modprobe.c b/tools/kmod-modprobe.c +index eaf9346..2cda935 100644 +--- a/tools/kmod-modprobe.c ++++ b/tools/kmod-modprobe.c +@@ -666,9 +666,11 @@ static int insmod_do_deps_list(struct kmod_module *parent, struct kmod_list *dep + flags |= KMOD_INSERT_FORCE_VERMAGIC; + + r = kmod_module_insert_module(dm, flags, opts); ++ if (r == -EEXIST && !first_time) ++ r = 0; + if (r < 0) { + WRN("could not insert '%s': %s\n", +- dmname, strerror(-r)); ++ dmname, strerror(-r)); + goto dep_error; + } + } +-- +1.7.8.1 + |