aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/vmx.c
diff options
context:
space:
mode:
authorGleb Natapov <gleb@redhat.com>2009-08-27 08:07:30 -0400
committerAvi Kivity <avi@redhat.com>2009-09-10 11:11:07 -0400
commit542423b0dd162a9dbf91109461703bd0e545c71f (patch)
tree5d070234ecda6fbe3bc91df53852a4431da13d64 /arch/x86/kvm/vmx.c
parente8a48342e9bc1c65ffe4bb3b3ac964e726dbd4c0 (diff)
KVM: VMX: call vmx_load_host_state() only if msr is cached
No need to call it before each kvm_(set|get)_msr_common() Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/x86/kvm/vmx.c')
-rw-r--r--arch/x86/kvm/vmx.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index f482100eff87..cc6e00a9f724 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -1007,9 +1007,9 @@ static int vmx_get_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 *pdata)
1007 data = vmcs_readl(GUEST_SYSENTER_ESP); 1007 data = vmcs_readl(GUEST_SYSENTER_ESP);
1008 break; 1008 break;
1009 default: 1009 default:
1010 vmx_load_host_state(to_vmx(vcpu));
1011 msr = find_msr_entry(to_vmx(vcpu), msr_index); 1010 msr = find_msr_entry(to_vmx(vcpu), msr_index);
1012 if (msr) { 1011 if (msr) {
1012 vmx_load_host_state(to_vmx(vcpu));
1013 data = msr->data; 1013 data = msr->data;
1014 break; 1014 break;
1015 } 1015 }
@@ -1066,9 +1066,9 @@ static int vmx_set_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 data)
1066 } 1066 }
1067 /* Otherwise falls through to kvm_set_msr_common */ 1067 /* Otherwise falls through to kvm_set_msr_common */
1068 default: 1068 default:
1069 vmx_load_host_state(vmx);
1070 msr = find_msr_entry(vmx, msr_index); 1069 msr = find_msr_entry(vmx, msr_index);
1071 if (msr) { 1070 if (msr) {
1071 vmx_load_host_state(vmx);
1072 msr->data = data; 1072 msr->data = data;
1073 break; 1073 break;
1074 } 1074 }