Merge git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull kvm bugfixes from Marcelo Tosatti. * git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: nVMX: Unconditionally uninit the MMU on nested vmexit KVM: x86: Fix APIC map calculation after re-enabling
This commit is contained in:
commit
7a262d2ed9
|
@ -1350,6 +1350,10 @@ void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!kvm_vcpu_is_bsp(apic->vcpu))
|
||||||
|
value &= ~MSR_IA32_APICBASE_BSP;
|
||||||
|
vcpu->arch.apic_base = value;
|
||||||
|
|
||||||
/* update jump label if enable bit changes */
|
/* update jump label if enable bit changes */
|
||||||
if ((vcpu->arch.apic_base ^ value) & MSR_IA32_APICBASE_ENABLE) {
|
if ((vcpu->arch.apic_base ^ value) & MSR_IA32_APICBASE_ENABLE) {
|
||||||
if (value & MSR_IA32_APICBASE_ENABLE)
|
if (value & MSR_IA32_APICBASE_ENABLE)
|
||||||
|
@ -1359,10 +1363,6 @@ void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value)
|
||||||
recalculate_apic_map(vcpu->kvm);
|
recalculate_apic_map(vcpu->kvm);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!kvm_vcpu_is_bsp(apic->vcpu))
|
|
||||||
value &= ~MSR_IA32_APICBASE_BSP;
|
|
||||||
|
|
||||||
vcpu->arch.apic_base = value;
|
|
||||||
if ((old_value ^ value) & X2APIC_ENABLE) {
|
if ((old_value ^ value) & X2APIC_ENABLE) {
|
||||||
if (value & X2APIC_ENABLE) {
|
if (value & X2APIC_ENABLE) {
|
||||||
u32 id = kvm_apic_id(apic);
|
u32 id = kvm_apic_id(apic);
|
||||||
|
|
|
@ -8283,8 +8283,7 @@ static void load_vmcs12_host_state(struct kvm_vcpu *vcpu,
|
||||||
vcpu->arch.cr4_guest_owned_bits = ~vmcs_readl(CR4_GUEST_HOST_MASK);
|
vcpu->arch.cr4_guest_owned_bits = ~vmcs_readl(CR4_GUEST_HOST_MASK);
|
||||||
kvm_set_cr4(vcpu, vmcs12->host_cr4);
|
kvm_set_cr4(vcpu, vmcs12->host_cr4);
|
||||||
|
|
||||||
if (nested_cpu_has_ept(vmcs12))
|
nested_ept_uninit_mmu_context(vcpu);
|
||||||
nested_ept_uninit_mmu_context(vcpu);
|
|
||||||
|
|
||||||
kvm_set_cr3(vcpu, vmcs12->host_cr3);
|
kvm_set_cr3(vcpu, vmcs12->host_cr3);
|
||||||
kvm_mmu_reset_context(vcpu);
|
kvm_mmu_reset_context(vcpu);
|
||||||
|
|
Loading…
Reference in New Issue