Skip to content
This repository has been archived by the owner on Nov 8, 2023. It is now read-only.

Commit

Permalink
Merge "Ignore 16K kernel modules when running on 4K kernel" into main
Browse files Browse the repository at this point in the history
  • Loading branch information
Treehugger Robot authored and Gerrit Code Review committed Sep 1, 2023
2 parents 09a61fa + dba385e commit a5c51c9
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion init/first_stage_init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,21 @@ std::string GetPageSizeSuffix() {
return android::base::StringPrintf("_%zuk", page_size / 1024);
}

constexpr bool EndsWith(const std::string_view str, const std::string_view suffix) {
return str.size() >= suffix.size() &&
0 == str.compare(str.size() - suffix.size(), suffix.size(), suffix);
}

constexpr std::string_view GetPageSizeSuffix(std::string_view dirname) {
if (EndsWith(dirname, "_16k")) {
return "_16k";
}
if (EndsWith(dirname, "_64k")) {
return "_64k";
}
return "";
}

} // namespace

std::string GetModuleLoadList(BootMode boot_mode, const std::string& dir_path) {
Expand Down Expand Up @@ -211,7 +226,8 @@ bool LoadKernelModules(BootMode boot_mode, bool want_console, bool want_parallel
}
dirent* entry = nullptr;
std::vector<std::string> module_dirs;
const std::string release_specific_module_dir = uts.release + GetPageSizeSuffix();
const auto page_size_suffix = GetPageSizeSuffix();
const std::string release_specific_module_dir = uts.release + page_size_suffix;
while ((entry = readdir(base_dir.get()))) {
if (entry->d_type != DT_DIR) {
continue;
Expand All @@ -223,6 +239,10 @@ bool LoadKernelModules(BootMode boot_mode, bool want_console, bool want_parallel
module_dirs.emplace_back(entry->d_name);
break;
}
// Ignore _16k/_64k module dirs on 4K kernels
if (GetPageSizeSuffix(entry->d_name) != page_size_suffix) {
continue;
}
int dir_major = 0, dir_minor = 0;
if (sscanf(entry->d_name, "%d.%d", &dir_major, &dir_minor) != 2 || dir_major != major ||
dir_minor != minor) {
Expand Down

0 comments on commit a5c51c9

Please sign in to comment.