From bc828dff19f4266cdb9e770426d4e52a05695f47 Mon Sep 17 00:00:00 2001 From: Victor Sun Date: Sun, 7 Mar 2021 15:56:35 +0800 Subject: [PATCH] HV: modularization: move module check to sanitize multiboot info ACRN used to support deprivileged boot mode which do not need multiboot modules, while direct boot mode need multiboot modules at lease for service VM bzImage, so ACRN postponed the multiboot modules sanity check in init_vm_boot_info. Now deprivileged boot mode was totally removed, so we can do multiboot module check in sanitize_acrn_multiboot_info(). Tracked-On: #5661 Signed-off-by: Victor Sun Reviewed-by: Jason Chen CJ Acked-by: Eddie Dong --- hypervisor/boot/guest/vboot_info.c | 6 +----- hypervisor/boot/multiboot/multiboot.c | 5 +++++ 2 files changed, 6 insertions(+), 5 deletions(-) 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;