libkmod-module: probe: return -EEXIST if told to stop on already loaded
diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
index d6d0810..948690a 100644
--- a/libkmod/libkmod-module.c
+++ b/libkmod/libkmod-module.c
@@ -1186,7 +1186,7 @@
 					state == KMOD_MODULE_COMING ||
 					state == KMOD_MODULE_BUILTIN) {
 				if (m == mod && (flags & KMOD_PROBE_STOP_ON_ALREADY_LOADED)) {
-					err = KMOD_PROBE_STOP_ON_ALREADY_LOADED;
+					err = -EEXIST;
 					break;
 				}
 
@@ -1206,8 +1206,8 @@
 
 		/*
 		 * Treat "already loaded" error. If we were told to stop on
-		 * already loaded and the module being loaded is not a
-		 * softdep, bail out. Otherwise, just ignore and continue.
+		 * already loaded and the module being loaded is not a softdep
+		 * or dep, bail out. Otherwise, just ignore and continue.
 		 *
 		 * We need to check here because of race conditions. We
 		 * checked first if module was already loaded but it may have
@@ -1215,12 +1215,12 @@
 		 * insert it.
 		 */
 		if (err == -EEXIST && m == mod &&
-				(flags & KMOD_PROBE_STOP_ON_ALREADY_LOADED)) {
-			err = KMOD_PROBE_STOP_ON_ALREADY_LOADED;
+				(flags & KMOD_PROBE_STOP_ON_ALREADY_LOADED))
 			break;
-		}
 
-		if (err < 0 && err != -EEXIST)
+		if (err == -EEXIST)
+			err = 0;
+		else if (err < 0)
 			break;
 	}