diff options
Diffstat (limited to 'arch/x86/kvm/vmx.c')
-rw-r--r-- | arch/x86/kvm/vmx.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index 45ffa32352f1..2fd2046dc94c 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c | |||
@@ -1884,6 +1884,11 @@ static void vmx_set_tsc_khz(struct kvm_vcpu *vcpu, u32 user_tsc_khz, bool scale) | |||
1884 | WARN(1, "user requested TSC rate below hardware speed\n"); | 1884 | WARN(1, "user requested TSC rate below hardware speed\n"); |
1885 | } | 1885 | } |
1886 | 1886 | ||
1887 | static u64 vmx_read_tsc_offset(struct kvm_vcpu *vcpu) | ||
1888 | { | ||
1889 | return vmcs_read64(TSC_OFFSET); | ||
1890 | } | ||
1891 | |||
1887 | /* | 1892 | /* |
1888 | * writes 'offset' into guest's timestamp counter offset register | 1893 | * writes 'offset' into guest's timestamp counter offset register |
1889 | */ | 1894 | */ |
@@ -2266,6 +2271,9 @@ static int vmx_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info) | |||
2266 | } | 2271 | } |
2267 | ret = kvm_set_msr_common(vcpu, msr_info); | 2272 | ret = kvm_set_msr_common(vcpu, msr_info); |
2268 | break; | 2273 | break; |
2274 | case MSR_IA32_TSC_ADJUST: | ||
2275 | ret = kvm_set_msr_common(vcpu, msr_info); | ||
2276 | break; | ||
2269 | case MSR_TSC_AUX: | 2277 | case MSR_TSC_AUX: |
2270 | if (!vmx->rdtscp_enabled) | 2278 | if (!vmx->rdtscp_enabled) |
2271 | return 1; | 2279 | return 1; |
@@ -7345,6 +7353,7 @@ static struct kvm_x86_ops vmx_x86_ops = { | |||
7345 | .has_wbinvd_exit = cpu_has_vmx_wbinvd_exit, | 7353 | .has_wbinvd_exit = cpu_has_vmx_wbinvd_exit, |
7346 | 7354 | ||
7347 | .set_tsc_khz = vmx_set_tsc_khz, | 7355 | .set_tsc_khz = vmx_set_tsc_khz, |
7356 | .read_tsc_offset = vmx_read_tsc_offset, | ||
7348 | .write_tsc_offset = vmx_write_tsc_offset, | 7357 | .write_tsc_offset = vmx_write_tsc_offset, |
7349 | .adjust_tsc_offset = vmx_adjust_tsc_offset, | 7358 | .adjust_tsc_offset = vmx_adjust_tsc_offset, |
7350 | .compute_tsc_offset = vmx_compute_tsc_offset, | 7359 | .compute_tsc_offset = vmx_compute_tsc_offset, |