From 2e5aa8be99fb89b82ec3ba28827d4d5c98271b12 Mon Sep 17 00:00:00 2001 From: Tao Yuhong Date: Tue, 27 Jul 2021 13:26:31 -0400 Subject: [PATCH] HV: MMIODEV: delete memory resource before add it to pre-launched VM If mmio resource is included in ACPI DATA e820 entry, it is will be mapped to RAM first. Then pre-launched VM can't map mmio resource GPA to its MMIO HPA. Tracked-On: #6320 Signed-off-by: Tao Yuhong --- hypervisor/arch/x86/guest/vm.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hypervisor/arch/x86/guest/vm.c b/hypervisor/arch/x86/guest/vm.c index dddf10bc3..a46e942fe 100644 --- a/hypervisor/arch/x86/guest/vm.c +++ b/hypervisor/arch/x86/guest/vm.c @@ -304,6 +304,10 @@ static void prepare_prelaunched_vm_memmap(struct acrn_vm *vm, const struct acrn_ for (i = 0U; i < MAX_MMIO_DEV_NUM; i++) { for (j = 0; j < MMIODEV_RES_NUM; j++) { + /* If mmio resource is included in ACPI DATA e820 entry, it is already mapped to RAM + * delete this potential mapping first + */ + (void)deassign_mmio_dev(vm, &vm_config->mmiodevs[i].mmiores[j]); (void)assign_mmio_dev(vm, &vm_config->mmiodevs[i].mmiores[j]); }