summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2009-08-17 22:49:40 +0300
committerAvi Kivity <avi@redhat.com>2009-09-10 10:46:54 +0300
commit88c808fd42b53a7e01a2ac3253ef31fef74cb5af (patch)
tree570998f7bc61caa35c493bca3b1ca50a3f74af0c /arch/x86/kvm
parent95eb84a7588d7d7afd3096807efc052adc7479e1 (diff)
downloadlinux-88c808fd42b53a7e01a2ac3253ef31fef74cb5af.tar.gz
linux-88c808fd42b53a7e01a2ac3253ef31fef74cb5af.tar.bz2
linux-88c808fd42b53a7e01a2ac3253ef31fef74cb5af.zip
KVM: Protect update_cr8_intercept() when running without an apic
update_cr8_intercept() can be triggered from userspace while there is no apic present. Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm')
-rw-r--r--arch/x86/kvm/x86.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 59a8ba4d56bd..35e7fc54de35 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3500,6 +3500,9 @@ static void update_cr8_intercept(struct kvm_vcpu *vcpu)
if (!kvm_x86_ops->update_cr8_intercept)
return;
+ if (!vcpu->arch.apic)
+ return;
+
if (!vcpu->arch.apic->vapic_addr)
max_irr = kvm_lapic_find_highest_irr(vcpu);
else