[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH resend 3/9] arm64/linux: Remove magic number header field check
From: |
Ard Biesheuvel |
Subject: |
[PATCH resend 3/9] arm64/linux: Remove magic number header field check |
Date: |
Thu, 18 Aug 2022 10:55:33 +0200 |
The 'ARM\x64' magic number in the file header identifies an image as one
that implements the bare metal boot protocol, allowing the loader to
simply move the file to a suitably aligned address in memory, with
sufficient headroom for the trailing .bss segment (the required memory
size is described in the header as well).
Note of this matters for GRUB, as it only supports EFI boot. EFI does
not care about this magic number, and nor should GRUB: this prevents us
from booting other PE linux images, such as the generic EFI zboot
decompressor, which is a pure PE/COFF image, and does not implement the
bare metal boot protocol.
So drop the magic number check.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
grub-core/loader/arm64/linux.c | 3 ---
include/grub/arm/linux.h | 1 -
include/grub/arm64/linux.h | 1 -
3 files changed, 5 deletions(-)
diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c
index aed7a200b848..b5b559c236e0 100644
--- a/grub-core/loader/arm64/linux.c
+++ b/grub-core/loader/arm64/linux.c
@@ -51,9 +51,6 @@ static grub_addr_t initrd_end;
grub_err_t
grub_arch_efi_linux_check_image (struct linux_arch_kernel_header * lh)
{
- if (lh->magic != GRUB_LINUX_ARMXX_MAGIC_SIGNATURE)
- return grub_error(GRUB_ERR_BAD_OS, "invalid magic number");
-
if ((lh->code0 & 0xffff) != GRUB_PE32_MAGIC)
return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
N_("plain image kernel not supported - rebuild with
CONFIG_(U)EFI_STUB enabled"));
diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h
index bcd5a7eb186e..bfab334dd87f 100644
--- a/include/grub/arm/linux.h
+++ b/include/grub/arm/linux.h
@@ -35,7 +35,6 @@ struct linux_arm_kernel_header {
};
#if defined(__arm__)
-# define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM_MAGIC_SIGNATURE
# define linux_arch_kernel_header linux_arm_kernel_header
#endif
diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h
index 7e22b4ab6990..96f1494e05a2 100644
--- a/include/grub/arm64/linux.h
+++ b/include/grub/arm64/linux.h
@@ -39,7 +39,6 @@ struct linux_arm64_kernel_header
};
#if defined(__aarch64__)
-# define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM64_MAGIC_SIGNATURE
# define linux_arch_kernel_header linux_arm64_kernel_header
#endif
--
2.35.1
- [PATCH resend 0/9] linux: implement LoadFile2 initrd loading, Ard Biesheuvel, 2022/08/18
- [PATCH resend 4/9] linux/arm: unify ARM/arm64 vs Xen PE/COFF header handling, Ard Biesheuvel, 2022/08/18
- [PATCH resend 3/9] arm64/linux: Remove magic number header field check,
Ard Biesheuvel <=
- [PATCH resend 5/9] linux/arm: account for COFF headers appearing at unexpected offsets, Ard Biesheuvel, 2022/08/18
- [PATCH resend 7/9] efi/efinet: Don't close connections at fini_hw() time, Ard Biesheuvel, 2022/08/18
- [PATCH resend 1/9] loader: drop argv[] argument in grub_initrd_load(), Ard Biesheuvel, 2022/08/18
- [PATCH resend 2/9] efi: move MS-DOS stub out of generic PE header definition, Ard Biesheuvel, 2022/08/18
- [PATCH resend 6/9] efi: add definition of LoadFile2 protocol, Ard Biesheuvel, 2022/08/18
- [PATCH resend 8/9] efi: implement LoadFile2 initrd loading protocol for Linux, Ard Biesheuvel, 2022/08/18
- [PATCH resend 9/9] linux: ignore FDT unless we need to modify it, Ard Biesheuvel, 2022/08/18
- Re: [PATCH resend 0/9] linux: implement LoadFile2 initrd loading, Ard Biesheuvel, 2022/08/18