]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
stub: move initialization of kernel iovec to the end, where it's used
authorLennart Poettering <lennart@poettering.net>
Wed, 26 Jun 2024 08:37:29 +0000 (10:37 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 26 Jun 2024 15:09:45 +0000 (17:09 +0200)
src/boot/efi/stub.c

index 8947f3aabfd9c7241d1ce2b7eb3381a086c28857..4745556b0208e67096f63499948acf855af25bf4 100644 (file)
@@ -945,11 +945,6 @@ static EFI_STATUS run(EFI_HANDLE image) {
                 (void) efivar_set_uint_string(MAKE_GUID_PTR(LOADER), u"StubPcrInitRDConfExts", TPM2_PCR_KERNEL_CONFIG, 0);
 
         generate_embedded_initrds(loaded_image, sections, initrds);
-
-        struct iovec kernel = IOVEC_MAKE(
-                        (const uint8_t*) loaded_image->ImageBase + sections[UNIFIED_SECTION_LINUX].memory_offset,
-                        sections[UNIFIED_SECTION_LINUX].size);
-
         lookup_embedded_initrds(loaded_image, sections, initrds);
 
         _cleanup_pages_ Pages initrd_pages = {};
@@ -968,6 +963,10 @@ static EFI_STATUS run(EFI_HANDLE image) {
         } else
                 final_initrd = initrds[INITRD_BASE];
 
+        struct iovec kernel = IOVEC_MAKE(
+                        (const uint8_t*) loaded_image->ImageBase + sections[UNIFIED_SECTION_LINUX].memory_offset,
+                        sections[UNIFIED_SECTION_LINUX].size);
+
         err = linux_exec(image, cmdline,
                          kernel.iov_base, kernel.iov_len,
                          final_initrd.iov_base, final_initrd.iov_len);