summaryrefslogtreecommitdiff
path: root/testing/kmod/fix-error-path-when-loading-deps.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/kmod/fix-error-path-when-loading-deps.patch')
-rw-r--r--testing/kmod/fix-error-path-when-loading-deps.patch35
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
+