|
@@ -983,16 +983,10 @@ static void svm_write_tsc_offset(struct kvm_vcpu *vcpu, u64 offset)
|
|
mark_dirty(svm->vmcb, VMCB_INTERCEPTS);
|
|
mark_dirty(svm->vmcb, VMCB_INTERCEPTS);
|
|
}
|
|
}
|
|
|
|
|
|
-static void svm_adjust_tsc_offset(struct kvm_vcpu *vcpu, s64 adjustment, bool host)
|
|
|
|
|
|
+static void svm_adjust_tsc_offset_guest(struct kvm_vcpu *vcpu, s64 adjustment)
|
|
{
|
|
{
|
|
struct vcpu_svm *svm = to_svm(vcpu);
|
|
struct vcpu_svm *svm = to_svm(vcpu);
|
|
|
|
|
|
- if (host) {
|
|
|
|
- if (vcpu->arch.tsc_scaling_ratio != TSC_RATIO_DEFAULT)
|
|
|
|
- WARN_ON(adjustment < 0);
|
|
|
|
- adjustment = kvm_scale_tsc(vcpu, (u64)adjustment);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
svm->vmcb->control.tsc_offset += adjustment;
|
|
svm->vmcb->control.tsc_offset += adjustment;
|
|
if (is_guest_mode(vcpu))
|
|
if (is_guest_mode(vcpu))
|
|
svm->nested.hsave->control.tsc_offset += adjustment;
|
|
svm->nested.hsave->control.tsc_offset += adjustment;
|
|
@@ -4360,7 +4354,7 @@ static struct kvm_x86_ops svm_x86_ops = {
|
|
|
|
|
|
.read_tsc_offset = svm_read_tsc_offset,
|
|
.read_tsc_offset = svm_read_tsc_offset,
|
|
.write_tsc_offset = svm_write_tsc_offset,
|
|
.write_tsc_offset = svm_write_tsc_offset,
|
|
- .adjust_tsc_offset = svm_adjust_tsc_offset,
|
|
|
|
|
|
+ .adjust_tsc_offset_guest = svm_adjust_tsc_offset_guest,
|
|
.read_l1_tsc = svm_read_l1_tsc,
|
|
.read_l1_tsc = svm_read_l1_tsc,
|
|
|
|
|
|
.set_tdp_cr3 = set_tdp_cr3,
|
|
.set_tdp_cr3 = set_tdp_cr3,
|