diff --git a/libmodprobe/include/modprobe/modprobe.h b/libmodprobe/include/modprobe/modprobe.h index 5d79d6ab6..d7a90c488 100644 --- a/libmodprobe/include/modprobe/modprobe.h +++ b/libmodprobe/include/modprobe/modprobe.h @@ -41,6 +41,7 @@ class Modprobe { std::vector* post_dependencies); void ResetModuleCount() { module_count_ = 0; } int GetModuleCount() { return module_count_; } + bool IsBlocklisted(const std::string& module_name); private: std::string MakeCanonical(const std::string& module_path); @@ -52,7 +53,6 @@ class Modprobe { void AddOption(const std::string& module_name, const std::string& option_name, const std::string& value); std::string GetKernelCmdline(); - bool IsBlocklisted(const std::string& module_name); bool ParseDepCallback(const std::string& base_path, const std::vector& args); bool ParseAliasCallback(const std::vector& args); diff --git a/toolbox/modprobe.cpp b/toolbox/modprobe.cpp index 17d4e319b..56cf140e1 100644 --- a/toolbox/modprobe.cpp +++ b/toolbox/modprobe.cpp @@ -257,6 +257,7 @@ extern "C" int modprobe_main(int argc, char** argv) { switch (mode) { case AddModulesMode: if (!m.LoadWithAliases(module, true, module_parameters)) { + if (m.IsBlocklisted(module)) continue; PLOG(ERROR) << "Failed to load module " << module; rv = EXIT_FAILURE; }