|
|
fd0330 |
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
fd0330 |
From: Ard Biesheuvel <ardb@kernel.org>
|
|
|
fd0330 |
Date: Thu, 11 Aug 2022 16:51:57 +0200
|
|
|
fd0330 |
Subject: [PATCH] loader/arm64/linux: Remove magic number header field check
|
|
|
fd0330 |
|
|
|
fd0330 |
The "ARM\x64" magic number in the file header identifies an image as one
|
|
|
fd0330 |
that implements the bare metal boot protocol, allowing the loader to
|
|
|
fd0330 |
simply move the file to a suitably aligned address in memory, with
|
|
|
fd0330 |
sufficient headroom for the trailing .bss segment (the required memory
|
|
|
fd0330 |
size is described in the header as well).
|
|
|
fd0330 |
|
|
|
fd0330 |
Note of this matters for GRUB, as it only supports EFI boot. EFI does
|
|
|
fd0330 |
not care about this magic number, and nor should GRUB: this prevents us
|
|
|
fd0330 |
from booting other PE linux images, such as the generic EFI zboot
|
|
|
fd0330 |
decompressor, which is a pure PE/COFF image, and does not implement the
|
|
|
fd0330 |
bare metal boot protocol.
|
|
|
fd0330 |
|
|
|
fd0330 |
So drop the magic number check.
|
|
|
fd0330 |
|
|
|
fd0330 |
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
|
|
|
fd0330 |
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
|
|
fd0330 |
Resolves: rhbz#2125069
|
|
|
fd0330 |
Signed-off-by: Jeremy Linton <jlinton@redhat.com>
|
|
|
fd0330 |
(cherry-picked from commit 69edb31205602c29293a8c6e67363bba2a4a1e66)
|
|
|
fd0330 |
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
|
|
|
fd0330 |
---
|
|
|
fd0330 |
grub-core/loader/arm64/linux.c | 3 ---
|
|
|
fd0330 |
1 file changed, 3 deletions(-)
|
|
|
fd0330 |
|
|
|
fd0330 |
diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c
|
|
|
fd0330 |
index de85583487..489d0c7173 100644
|
|
|
fd0330 |
--- a/grub-core/loader/arm64/linux.c
|
|
|
fd0330 |
+++ b/grub-core/loader/arm64/linux.c
|
|
|
fd0330 |
@@ -55,9 +55,6 @@ static grub_addr_t initrd_end;
|
|
|
fd0330 |
grub_err_t
|
|
|
fd0330 |
grub_arch_efi_linux_check_image (struct linux_arch_kernel_header * lh)
|
|
|
fd0330 |
{
|
|
|
fd0330 |
- if (lh->magic != GRUB_LINUX_ARMXX_MAGIC_SIGNATURE)
|
|
|
fd0330 |
- return grub_error(GRUB_ERR_BAD_OS, "invalid magic number");
|
|
|
fd0330 |
-
|
|
|
fd0330 |
if ((lh->code0 & 0xffff) != GRUB_DOS_MAGIC)
|
|
|
fd0330 |
return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
|
|
|
fd0330 |
N_("plain image kernel not supported - rebuild with CONFIG_(U)EFI_STUB enabled"));
|