:: commit 1365d9656bd41714ad6ec712d7d121aca568751b

mintsuki <mintsuki@protonmail.com> — 2021-04-28 22:45

parents: f2b172be71

linux: Make sure to align kernel and modules memory map allocations to page size

diff --git a/stage23/protos/linux.c b/stage23/protos/linux.c
index 1849dd7f..89fb3715 100644
--- a/stage23/protos/linux.c
+++ b/stage23/protos/linux.c
@@ -416,7 +416,7 @@ void linux_load(char *config, char *cmdline) {
     print("linux: Loading kernel...\n");
     for (;;) {
         if (memmap_alloc_range(kernel_load_addr,
-                kernel->size - real_mode_code_size,
+                ALIGN_UP(kernel->size - real_mode_code_size, 4096),
                 MEMMAP_BOOTLOADER_RECLAIMABLE, true, false, false, false))
             break;
 
@@ -450,7 +450,7 @@ void linux_load(char *config, char *cmdline) {
     modules_mem_base = ALIGN_DOWN(modules_mem_base, 4096);
 
     for (;;) {
-        if (memmap_alloc_range(modules_mem_base, size_of_all_modules,
+        if (memmap_alloc_range(modules_mem_base, ALIGN_UP(size_of_all_modules, 4096),
                                MEMMAP_BOOTLOADER_RECLAIMABLE, true, false, false, false))
             break;
         modules_mem_base -= 4096;
tab: 248 wrap: offon