aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/svm.c
diff options
context:
space:
mode:
authorJoerg Roedel <joerg.roedel@amd.com>2008-01-31 08:57:38 -0500
committerAvi Kivity <avi@qumranet.com>2008-04-27 04:53:18 -0400
commit50a37eb4e05efaa7bac6a948fd4db1a48c728b99 (patch)
tree34195810be002db84cfafb9ed706d48bb6752d52 /arch/x86/kvm/svm.c
parentf2b4b7ddf633ffa24ce7c89c9e0d8a06463484e3 (diff)
KVM: align valid EFER bits with the features of the host system
This patch aligns the bits the guest can set in the EFER register with the features in the host processor. Currently it lets EFER.NX disabled if the processor does not support it and enables EFER.LME and EFER.LMA only for KVM on 64 bit hosts. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'arch/x86/kvm/svm.c')
-rw-r--r--arch/x86/kvm/svm.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 1a582f1090e8..ff3bc74af728 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -403,6 +403,9 @@ static __init int svm_hardware_setup(void)
403 set_msr_interception(msrpm_va, MSR_IA32_SYSENTER_ESP, 1, 1); 403 set_msr_interception(msrpm_va, MSR_IA32_SYSENTER_ESP, 1, 1);
404 set_msr_interception(msrpm_va, MSR_IA32_SYSENTER_EIP, 1, 1); 404 set_msr_interception(msrpm_va, MSR_IA32_SYSENTER_EIP, 1, 1);
405 405
406 if (boot_cpu_has(X86_FEATURE_NX))
407 kvm_enable_efer_bits(EFER_NX);
408
406 for_each_online_cpu(cpu) { 409 for_each_online_cpu(cpu) {
407 r = svm_cpu_init(cpu); 410 r = svm_cpu_init(cpu);
408 if (r) 411 if (r)