summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libmodprobe/include/modprobe/modprobe.h2
-rw-r--r--libmodprobe/libmodprobe.cpp8
2 files changed, 6 insertions, 4 deletions
diff --git a/libmodprobe/include/modprobe/modprobe.h b/libmodprobe/include/modprobe/modprobe.h
index 421d826442..333fc55068 100644
--- a/libmodprobe/include/modprobe/modprobe.h
+++ b/libmodprobe/include/modprobe/modprobe.h
@@ -26,7 +26,7 @@ class Modprobe {
public:
Modprobe(const std::vector<std::string>&);
- bool LoadListedModules();
+ bool LoadListedModules(bool strict = true);
bool LoadWithAliases(const std::string& module_name, bool strict,
const std::string& parameters = "");
bool Remove(const std::string& module_name);
diff --git a/libmodprobe/libmodprobe.cpp b/libmodprobe/libmodprobe.cpp
index 3c78ec999c..6b9107fd54 100644
--- a/libmodprobe/libmodprobe.cpp
+++ b/libmodprobe/libmodprobe.cpp
@@ -360,13 +360,15 @@ bool Modprobe::LoadWithAliases(const std::string& module_name, bool strict,
return true;
}
-bool Modprobe::LoadListedModules() {
+bool Modprobe::LoadListedModules(bool strict) {
+ auto ret = true;
for (const auto& module : module_load_) {
if (!LoadWithAliases(module, true)) {
- return false;
+ ret = false;
+ if (strict) break;
}
}
- return true;
+ return ret;
}
bool Modprobe::Remove(const std::string& module_name) {