From 8773dfb1f6c2882b4b843fbbd297595077b0289d Mon Sep 17 00:00:00 2001 From: Jason Chen CJ Date: Sat, 8 Sep 2018 03:33:09 +0800 Subject: [PATCH] vlapic: unmap vlapic base only for SOS as SOS mapped all memory at the beginning, so trap vlapic need unmap its memory; for UOS, there is no need as UOS never mapped it. Tracked-On: #1124 Signed-off-by: Jason Chen CJ --- hypervisor/arch/x86/guest/vlapic.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hypervisor/arch/x86/guest/vlapic.c b/hypervisor/arch/x86/guest/vlapic.c index d384a0248..6df1b7214 100644 --- a/hypervisor/arch/x86/guest/vlapic.c +++ b/hypervisor/arch/x86/guest/vlapic.c @@ -1970,8 +1970,10 @@ int vlapic_create(struct vcpu *vcpu) if (is_vcpu_bsp(vcpu)) { uint64_t *pml4_page = (uint64_t *)vcpu->vm->arch_vm.nworld_eptp; - ept_mr_del(vcpu->vm, pml4_page, - DEFAULT_APIC_BASE, CPU_PAGE_SIZE); + /* only need unmap it from SOS as UOS never mapped it */ + if (is_vm0(vcpu->vm)) + ept_mr_del(vcpu->vm, pml4_page, + DEFAULT_APIC_BASE, CPU_PAGE_SIZE); ept_mr_add(vcpu->vm, pml4_page, vlapic_apicv_get_apic_access_addr(vcpu->vm),