Browse Source

KVM: SVM: align shadow CR4.MCE with host

This patch aligns the host version of the CR4.MCE bit with the CR4 active in
the guest. This is necessary to get MCE exceptions when the guest is running.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
Joerg Roedel 17 years ago
parent
commit
6394b6494c
1 changed files with 3 additions and 0 deletions
  1. 3 0
      arch/x86/kvm/svm.c

+ 3 - 0
arch/x86/kvm/svm.c

@@ -878,9 +878,12 @@ set:
 
 
 static void svm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
 static void svm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
 {
 {
+	unsigned long host_cr4_mce = read_cr4() & X86_CR4_MCE;
+
 	vcpu->arch.cr4 = cr4;
 	vcpu->arch.cr4 = cr4;
 	if (!npt_enabled)
 	if (!npt_enabled)
 		cr4 |= X86_CR4_PAE;
 		cr4 |= X86_CR4_PAE;
+	cr4 |= host_cr4_mce;
 	to_svm(vcpu)->vmcb->save.cr4 = cr4;
 	to_svm(vcpu)->vmcb->save.cr4 = cr4;
 }
 }