Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0df946ff authored by Steve Muckle's avatar Steve Muckle Committed by Automerger Merge Worker
Browse files

first_stage_init: load modules in modules.load.recovery in recovery am: ae317c71 am: 5fd7b470

Change-Id: Ib76cb288313b56cda5d585a692f116b22914ee8f
parents a618183d 5fd7b470
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -234,7 +234,16 @@ int FirstStageMain(int argc, char** argv) {
        old_root_dir.reset();
    }

    Modprobe m({"/lib/modules"});
    std::string module_load_file = "modules.load";
    if (IsRecoveryMode() && !ForceNormalBoot(cmdline)) {
        struct stat fileStat;
        std::string recovery_load_path = "/lib/modules/modules.load.recovery";
        if (!stat(recovery_load_path.c_str(), &fileStat)) {
            module_load_file = "modules.load.recovery";
        }
    }

    Modprobe m({"/lib/modules"}, module_load_file);
    auto want_console = ALLOW_FIRST_STAGE_CONSOLE && FirstStageConsole(cmdline);
    if (!m.LoadListedModules(!want_console)) {
        if (want_console) {
+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@

class Modprobe {
  public:
    Modprobe(const std::vector<std::string>&);
    Modprobe(const std::vector<std::string>&, const std::string load_file = "modules.load");

    bool LoadListedModules(bool strict = true);
    bool LoadWithAliases(const std::string& module_name, bool strict,
+2 −2
Original line number Diff line number Diff line
@@ -312,7 +312,7 @@ void Modprobe::ParseKernelCmdlineOptions(void) {
    }
}

Modprobe::Modprobe(const std::vector<std::string>& base_paths) {
Modprobe::Modprobe(const std::vector<std::string>& base_paths, const std::string load_file) {
    using namespace std::placeholders;

    for (const auto& base_path : base_paths) {
@@ -326,7 +326,7 @@ Modprobe::Modprobe(const std::vector<std::string>& base_paths) {
        ParseCfg(base_path + "/modules.softdep", softdep_callback);

        auto load_callback = std::bind(&Modprobe::ParseLoadCallback, this, _1);
        ParseCfg(base_path + "/modules.load", load_callback);
        ParseCfg(base_path + "/" + load_file, load_callback);

        auto options_callback = std::bind(&Modprobe::ParseOptionsCallback, this, _1);
        ParseCfg(base_path + "/modules.options", options_callback);