Skip to content

Commit 6477633

Browse files
committed
toolbox/modprobe: Load modules from /lib/modules based on page size
Load modules from /lib/modules for 4kb page size kernels when the -d option is not present. Do not do this for 16kb page size kernels due it will load the 4kb modules when PRODUCT_16K_DEVELOPER_OPTION is true. Depending on the value of PRODUCT_16K_DEVELOPER_OPTION, the kernel modules can be located in several directories: - true: There are 2 directories that contain the 4kb and 16kb modules. - 4kb modules are in /lib/modules - 16kb modules are in /lib/modules/<uname -r>_16k - false: There is only one directory that contains only one type of the kernel modules, either 4kb or 16kb. - /lib/modules This is a temporary fix for the 16kb developer option. This b/346659501 will track the proper fix. Test: Boot target husky-trunk_staging-userdebug with developer option. Test: Boot target husky_pgagnostic-next-userdebug without developer option. Bug: 345609905 Bug: 343971855 Change-Id: I9bab33d9f06743bd10ee804b20db8f39467fcc52
1 parent fb30388 commit 6477633

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

toolbox/modprobe.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -245,8 +245,10 @@ extern "C" int modprobe_main(int argc, char** argv) {
245245
}
246246
free(kernel_dirs);
247247

248-
// Allow modules to be directly inside /lib/modules
249-
mod_dirs.emplace_back(LIB_MODULES_PREFIX);
248+
if (mod_dirs.empty() || getpagesize() == 4096) {
249+
// Allow modules to be directly inside /lib/modules
250+
mod_dirs.emplace_back(LIB_MODULES_PREFIX);
251+
}
250252
}
251253

252254
LOG(DEBUG) << "mode is " << mode;

0 commit comments

Comments
 (0)