diff --git a/hypervisor/boot/guest/vboot_info.c b/hypervisor/boot/guest/vboot_info.c index 71aad8921..d7e0f9319 100644 --- a/hypervisor/boot/guest/vboot_info.c +++ b/hypervisor/boot/guest/vboot_info.c @@ -225,7 +225,10 @@ static int32_t init_vm_sw_load(struct acrn_vm *vm, const struct acrn_multiboot_i } if (ret == 0) { - init_vm_bootargs_info(vm, mbi); + /* Currently VM bootargs only support Linux guest */ + if (vm->sw.kernel_type == KERNEL_BZIMAGE) { + init_vm_bootargs_info(vm, mbi); + } /* check whether there is a ramdisk module */ mod = get_mod_by_tag(mbi, vm_config->os_config.ramdisk_mod_tag); if (mod != NULL) { diff --git a/hypervisor/common/vm_load.c b/hypervisor/common/vm_load.c index 145d6d720..5e14dbedb 100644 --- a/hypervisor/common/vm_load.c +++ b/hypervisor/common/vm_load.c @@ -212,7 +212,7 @@ int32_t vm_sw_loader(struct acrn_vm *vm) ramdisk_info->size); } /* Copy Guest OS bootargs to its load location */ - if (bootargs_info->size != 0U) { + if ((bootargs_info->size != 0U) && (bootargs_info->load_addr != NULL)) { (void)copy_to_gpa(vm, bootargs_info->src_addr, (uint64_t)bootargs_info->load_addr, (strnlen_s((char *)bootargs_info->src_addr, MAX_BOOTARGS_SIZE) + 1U));