diff --git a/hypervisor/arch/x86/guest/vmsr.c b/hypervisor/arch/x86/guest/vmsr.c index eafce7cf9..b38900c1f 100644 --- a/hypervisor/arch/x86/guest/vmsr.c +++ b/hypervisor/arch/x86/guest/vmsr.c @@ -332,6 +332,11 @@ static void init_msr_area(struct acrn_vcpu *vcpu) vcpu->arch.msr_area.guest[MSR_AREA_TSC_AUX].value = vcpu->vcpu_id; vcpu->arch.msr_area.host[MSR_AREA_TSC_AUX].msr_index = MSR_IA32_TSC_AUX; vcpu->arch.msr_area.host[MSR_AREA_TSC_AUX].value = vcpu->pcpu_id; + + vcpu->arch.msr_area.guest[MSR_AREA_IA32_MISC_ENABLE].msr_index = MSR_IA32_MISC_ENABLE; + vcpu->arch.msr_area.guest[MSR_AREA_IA32_MISC_ENABLE].value = msr_read(MSR_IA32_MISC_ENABLE); + vcpu->arch.msr_area.host[MSR_AREA_IA32_MISC_ENABLE].msr_index = MSR_IA32_MISC_ENABLE; + vcpu->arch.msr_area.host[MSR_AREA_IA32_MISC_ENABLE].value = msr_read(MSR_IA32_MISC_ENABLE); } void init_msr_emulation(struct acrn_vcpu *vcpu) diff --git a/hypervisor/include/arch/x86/guest/vcpu.h b/hypervisor/include/arch/x86/guest/vcpu.h index e8ddd0a67..54f7c9961 100644 --- a/hypervisor/include/arch/x86/guest/vcpu.h +++ b/hypervisor/include/arch/x86/guest/vcpu.h @@ -242,6 +242,7 @@ struct msr_store_entry { enum { MSR_AREA_TSC_AUX = 0, + MSR_AREA_IA32_MISC_ENABLE, MSR_AREA_COUNT, };