diff --git a/hypervisor/arch/x86/guest/vm.c b/hypervisor/arch/x86/guest/vm.c index 423d43353..617257148 100644 --- a/hypervisor/arch/x86/guest/vm.c +++ b/hypervisor/arch/x86/guest/vm.c @@ -239,15 +239,17 @@ static void prepare_prelaunched_vm_memmap(struct acrn_vm *vm, const struct acrn_ || (entry->type == E820_TYPE_ACPI_NVS)) { ept_add_mr(vm, (uint64_t *)vm->arch_vm.nworld_eptp, base_hpa, entry->baseaddr, entry->length, EPT_RWX | EPT_WB); + base_hpa += entry->length; + remaining_hpa_size -= entry->length; } /* GPAs under 1MB are always backed by physical memory */ if ((entry->type != E820_TYPE_RAM) && (entry->baseaddr < (uint64_t)MEM_1M)) { ept_add_mr(vm, (uint64_t *)vm->arch_vm.nworld_eptp, base_hpa, entry->baseaddr, entry->length, EPT_RWX | EPT_UNCACHED); + base_hpa += entry->length; + remaining_hpa_size -= entry->length; } - base_hpa += entry->length; - remaining_hpa_size -= entry->length; } else if (entry->type == E820_TYPE_RAM) { pr_warn("%s: HPA size incorrectly configured in v820\n", __func__); }