summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/x86.c
diff options
context:
space:
mode:
authorAvi Kivity2009-05-03 17:50:55 +0200
committerAvi Kivity2009-05-11 10:19:00 +0200
commite286e86e6d2042d67d09244aa0e05ffef75c9d54 (patch)
tree6fbabd149ba7e0b2fa06a03f39cebe268de9dc8b /arch/x86/kvm/x86.c
parentKVM: Fix NX support reporting (diff)
downloadkernel-qcow2-linux-e286e86e6d2042d67d09244aa0e05ffef75c9d54.tar.gz
kernel-qcow2-linux-e286e86e6d2042d67d09244aa0e05ffef75c9d54.tar.xz
kernel-qcow2-linux-e286e86e6d2042d67d09244aa0e05ffef75c9d54.zip
KVM: Make EFER reads safe when EFER does not exist
Some processors don't have EFER; don't oops if userspace wants us to read EFER when we check NX. Cc: stable@kernel.org Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/x86.c')
-rw-r--r--arch/x86/kvm/x86.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 834a7bf25e48..49079a46687b 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1121,9 +1121,9 @@ void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu)
static int is_efer_nx(void)
{
- u64 efer;
+ unsigned long long efer = 0;
- rdmsrl(MSR_EFER, efer);
+ rdmsrl_safe(MSR_EFER, &efer);
return efer & EFER_NX;
}