:: commit e63931f0dd1a324ffc0d49a68f9f4302efd1f849

mintsuki <mintsuki@protonmail.com> — 2021-07-06 06:41

parents: e6cc0e4b93

linux: Exit bootservices *before* saving the memory map in the zero page

diff --git a/stage23/protos/linux.c b/stage23/protos/linux.c
index af3c1811..60279c3d 100644
--- a/stage23/protos/linux.c
+++ b/stage23/protos/linux.c
@@ -535,6 +535,8 @@ void linux_load(char *config, char *cmdline) {
     // UEFI
     ///////////////////////////////////////
 #if defined (uefi)
+    efi_exit_boot_services();
+
     memcpy(&boot_params->efi_info.efi_loader_signature, "EL64", 4);
     boot_params->efi_info.efi_systab          = (uint32_t)(uintptr_t)gST;
     boot_params->efi_info.efi_systab_hi       = (uint32_t)((uintptr_t)gST >> 32);
@@ -543,8 +545,6 @@ void linux_load(char *config, char *cmdline) {
     boot_params->efi_info.efi_memmap_size     = efi_mmap_size;
     boot_params->efi_info.efi_memdesc_size    = efi_desc_size;
     boot_params->efi_info.efi_memdesc_version = efi_desc_ver;
-
-    efi_exit_boot_services();
 #endif
 
     ///////////////////////////////////////
tab: 248 wrap: offon