diff --git a/src/boot/efi/stub.c b/src/boot/efi/stub.c index 8947f3aabfd..4745556b020 100644 --- a/src/boot/efi/stub.c +++ b/src/boot/efi/stub.c @@ -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);