@@ -3537,10 +3539,14 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
* return L1's TSC value to ensure backwards-compatible
* behavior for migration.
*/
- u64 tsc_offset = msr_info->host_initiated ? vcpu->arch.l1_tsc_offset :
- vcpu->arch.tsc_offset;
-
- msr_info->data = kvm_scale_tsc(vcpu, rdtsc()) + tsc_offset;
+ if (msr_info->host_initiated)
+ msr_info->data = kvm_scale_tsc(
+ vcpu, rdtsc(), vcpu->arch.l1_tsc_scaling_ratio
+ ) + vcpu->arch.l1_tsc_offset;
+ else
+ msr_info->data = kvm_scale_tsc(
+ vcpu, rdtsc(), vcpu->arch.tsc_scaling_ratio
+ ) + vcpu->arch.tsc_offset;
break;
}
case MSR_MTRRcap: