From a48a90a81a83955169a19cd64ed57a75c1a44023 Mon Sep 17 00:00:00 2001 From: mintsuki Date: Fri, 24 Mar 2023 09:07:40 +0100 Subject: [PATCH] limine: Load internal modules before config modules --- common/protos/limine.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/common/protos/limine.c b/common/protos/limine.c index 74c8722b..2b50d955 100644 --- a/common/protos/limine.c +++ b/common/protos/limine.c @@ -634,8 +634,6 @@ FEAT_START break; } - size_t config_module_count = module_count; - if (module_request->revision >= 1) { module_count += module_request->internal_module_count; } @@ -653,19 +651,19 @@ FEAT_START char *module_path; char *module_cmdline; - if (i < config_module_count) { + if (i < module_request->internal_module_count) { + uint64_t *internal_modules = (void *)get_phys_addr(module_request->internal_modules); + struct limine_internal_module *internal_module = (void *)get_phys_addr(internal_modules[i]); + + module_path = (char *)get_phys_addr(internal_module->path); + module_cmdline = (char *)get_phys_addr(internal_module->cmdline); + } else { struct conf_tuple conf_tuple = - config_get_tuple(config, i, + config_get_tuple(config, i - module_request->internal_module_count, "MODULE_PATH", "MODULE_CMDLINE"); module_path = conf_tuple.value1; module_cmdline = conf_tuple.value2; - } else { - uint64_t *internal_modules = (void *)get_phys_addr(module_request->internal_modules); - struct limine_internal_module *internal_module = (void *)get_phys_addr(internal_modules[i - config_module_count]); - - module_path = (char *)get_phys_addr(internal_module->path); - module_cmdline = (char *)get_phys_addr(internal_module->cmdline); } if (module_cmdline == NULL) {