[PATCH v2 5/5] multiboot2: Accept x86-64 images
Zhaofeng Li
hello at zhaofeng.li
Mon Sep 13 20:51:42 PDT 2021
Signed-off-by: Zhaofeng Li <hello at zhaofeng.li>
---
kexec/arch/i386/kexec-mb2-x86.c | 6 ++++--
kexec/arch/x86_64/kexec-x86_64.c | 4 ++--
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/kexec/arch/i386/kexec-mb2-x86.c b/kexec/arch/i386/kexec-mb2-x86.c
index f3e6b38..36fef20 100644
--- a/kexec/arch/i386/kexec-mb2-x86.c
+++ b/kexec/arch/i386/kexec-mb2-x86.c
@@ -76,8 +76,10 @@ int multiboot2_x86_probe(const char *buf, off_t buf_len)
/* Is it a good idea to try booting this file? */
{
int i, len;
- /* First of all, check that this is an ELF file */
- if ((i=elf_x86_probe(buf, buf_len)) < 0)
+
+ /* First of all, check that this is an ELF file for either x86 or x86-64 */
+ i = elf_x86_any_probe(buf, buf_len, CORE_TYPE_UNDEF);
+ if (i < 0)
return i;
/* Now look for a multiboot header. */
diff --git a/kexec/arch/x86_64/kexec-x86_64.c b/kexec/arch/x86_64/kexec-x86_64.c
index 394cfca..ffd84f0 100644
--- a/kexec/arch/x86_64/kexec-x86_64.c
+++ b/kexec/arch/x86_64/kexec-x86_64.c
@@ -33,11 +33,11 @@
#include <arch/options.h>
struct file_type file_type[] = {
+ { "multiboot2-x86", multiboot2_x86_probe, multiboot2_x86_load,
+ multiboot2_x86_usage },
{ "elf-x86_64", elf_x86_64_probe, elf_x86_64_load, elf_x86_64_usage },
{ "multiboot-x86", multiboot_x86_probe, multiboot_x86_load,
multiboot_x86_usage },
- { "multiboot2-x86", multiboot2_x86_probe, multiboot2_x86_load,
- multiboot2_x86_usage },
{ "elf-x86", elf_x86_probe, elf_x86_load, elf_x86_usage },
{ "bzImage64", bzImage64_probe, bzImage64_load, bzImage64_usage },
{ "bzImage", bzImage_probe, bzImage_load, bzImage_usage },
--
2.32.0
More information about the kexec
mailing list