Signed-off-by: Zhaofeng Li <he...@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


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to