diff --git a/hypervisor/boot/guest/vboot_info.c b/hypervisor/boot/guest/vboot_info.c index 4e45b52de..856faa758 100644 --- a/hypervisor/boot/guest/vboot_info.c +++ b/hypervisor/boot/guest/vboot_info.c @@ -263,11 +263,7 @@ int32_t init_vm_boot_info(struct acrn_vm *vm) int32_t ret = -EINVAL; stac(); - if ((mbi->mi_flags & MULTIBOOT_INFO_HAS_MODS) == 0U) { - panic("no multiboot module info found"); - } else { - ret = init_vm_sw_load(vm, mbi); - } + ret = init_vm_sw_load(vm, mbi); clac(); return ret; diff --git a/hypervisor/boot/multiboot/multiboot.c b/hypervisor/boot/multiboot/multiboot.c index 5bf623b04..9ea17ce9f 100644 --- a/hypervisor/boot/multiboot/multiboot.c +++ b/hypervisor/boot/multiboot/multiboot.c @@ -88,6 +88,11 @@ int32_t sanitize_acrn_multiboot_info(uint32_t magic, uint32_t info) acrn_mbi.mi_flags &= ~MULTIBOOT_INFO_HAS_MODS; } + if ((acrn_mbi.mi_flags & MULTIBOOT_INFO_HAS_MODS) == 0U) { + pr_err("no multiboot module info found"); + mbi_status = -EINVAL; + } + if ((acrn_mbi.mi_flags & MULTIBOOT_INFO_HAS_MMAP) == 0U) { pr_err("wrong multiboot flags: 0x%08x", acrn_mbi.mi_flags); mbi_status = -EINVAL;