aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/kvm
diff options
context:
space:
mode:
authorAvi Kivity <avi@qumranet.com>2007-12-06 09:32:45 -0500
committerAvi Kivity <avi@qumranet.com>2008-01-30 10:53:19 -0500
commite5314067f6a77688a3d36548e7618430ce4a6236 (patch)
treea03623c7ae33403d7e4de0deeb581367bef67ae3 /drivers/kvm
parente934c9c1c8742872a53efb84966d9c1d7b8c8e24 (diff)
KVM: VMX: Avoid exit when setting cr8 if the local apic is in the kernel
With apic in userspace, we must exit to userspace after a cr8 write in order to update the tpr. But if the apic is in the kernel, the exit is unnecessary. Noticed by Joerg Roedel. Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'drivers/kvm')
-rw-r--r--drivers/kvm/vmx.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c
index 3b44573c326e..83084348581a 100644
--- a/drivers/kvm/vmx.c
+++ b/drivers/kvm/vmx.c
@@ -1973,6 +1973,8 @@ static int handle_cr(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
1973 vcpu_load_rsp_rip(vcpu); 1973 vcpu_load_rsp_rip(vcpu);
1974 set_cr8(vcpu, vcpu->regs[reg]); 1974 set_cr8(vcpu, vcpu->regs[reg]);
1975 skip_emulated_instruction(vcpu); 1975 skip_emulated_instruction(vcpu);
1976 if (irqchip_in_kernel(vcpu->kvm))
1977 return 1;
1976 kvm_run->exit_reason = KVM_EXIT_SET_TPR; 1978 kvm_run->exit_reason = KVM_EXIT_SET_TPR;
1977 return 0; 1979 return 0;
1978 }; 1980 };