File tree Expand file tree Collapse file tree 4 files changed +19
-22
lines changed Expand file tree Collapse file tree 4 files changed +19
-22
lines changed Original file line number Diff line number Diff line change @@ -845,7 +845,7 @@ struct kvm_x86_ops {
845
845
int (* get_lpage_level )(void );
846
846
bool (* rdtscp_supported )(void );
847
847
bool (* invpcid_supported )(void );
848
- void (* adjust_tsc_offset )(struct kvm_vcpu * vcpu , s64 adjustment , bool host );
848
+ void (* adjust_tsc_offset_guest )(struct kvm_vcpu * vcpu , s64 adjustment );
849
849
850
850
void (* set_tdp_cr3 )(struct kvm_vcpu * vcpu , unsigned long cr3 );
851
851
@@ -922,17 +922,6 @@ struct kvm_arch_async_pf {
922
922
923
923
extern struct kvm_x86_ops * kvm_x86_ops ;
924
924
925
- static inline void adjust_tsc_offset_guest (struct kvm_vcpu * vcpu ,
926
- s64 adjustment )
927
- {
928
- kvm_x86_ops -> adjust_tsc_offset (vcpu , adjustment , false);
929
- }
930
-
931
- static inline void adjust_tsc_offset_host (struct kvm_vcpu * vcpu , s64 adjustment )
932
- {
933
- kvm_x86_ops -> adjust_tsc_offset (vcpu , adjustment , true);
934
- }
935
-
936
925
int kvm_mmu_module_init (void );
937
926
void kvm_mmu_module_exit (void );
938
927
Original file line number Diff line number Diff line change @@ -983,16 +983,10 @@ static void svm_write_tsc_offset(struct kvm_vcpu *vcpu, u64 offset)
983
983
mark_dirty (svm -> vmcb , VMCB_INTERCEPTS );
984
984
}
985
985
986
- static void svm_adjust_tsc_offset (struct kvm_vcpu * vcpu , s64 adjustment , bool host )
986
+ static void svm_adjust_tsc_offset_guest (struct kvm_vcpu * vcpu , s64 adjustment )
987
987
{
988
988
struct vcpu_svm * svm = to_svm (vcpu );
989
989
990
- if (host ) {
991
- if (vcpu -> arch .tsc_scaling_ratio != TSC_RATIO_DEFAULT )
992
- WARN_ON (adjustment < 0 );
993
- adjustment = kvm_scale_tsc (vcpu , (u64 )adjustment );
994
- }
995
-
996
990
svm -> vmcb -> control .tsc_offset += adjustment ;
997
991
if (is_guest_mode (vcpu ))
998
992
svm -> nested .hsave -> control .tsc_offset += adjustment ;
@@ -4360,7 +4354,7 @@ static struct kvm_x86_ops svm_x86_ops = {
4360
4354
4361
4355
.read_tsc_offset = svm_read_tsc_offset ,
4362
4356
.write_tsc_offset = svm_write_tsc_offset ,
4363
- .adjust_tsc_offset = svm_adjust_tsc_offset ,
4357
+ .adjust_tsc_offset_guest = svm_adjust_tsc_offset_guest ,
4364
4358
.read_l1_tsc = svm_read_l1_tsc ,
4365
4359
4366
4360
.set_tdp_cr3 = set_tdp_cr3 ,
Original file line number Diff line number Diff line change @@ -2413,7 +2413,7 @@ static void vmx_write_tsc_offset(struct kvm_vcpu *vcpu, u64 offset)
2413
2413
}
2414
2414
}
2415
2415
2416
- static void vmx_adjust_tsc_offset (struct kvm_vcpu * vcpu , s64 adjustment , bool host )
2416
+ static void vmx_adjust_tsc_offset_guest (struct kvm_vcpu * vcpu , s64 adjustment )
2417
2417
{
2418
2418
u64 offset = vmcs_read64 (TSC_OFFSET );
2419
2419
@@ -10807,7 +10807,7 @@ static struct kvm_x86_ops vmx_x86_ops = {
10807
10807
10808
10808
.read_tsc_offset = vmx_read_tsc_offset ,
10809
10809
.write_tsc_offset = vmx_write_tsc_offset ,
10810
- .adjust_tsc_offset = vmx_adjust_tsc_offset ,
10810
+ .adjust_tsc_offset_guest = vmx_adjust_tsc_offset_guest ,
10811
10811
.read_l1_tsc = vmx_read_l1_tsc ,
10812
10812
10813
10813
.set_tdp_cr3 = vmx_set_cr3 ,
Original file line number Diff line number Diff line change @@ -1526,6 +1526,20 @@ void kvm_write_tsc(struct kvm_vcpu *vcpu, struct msr_data *msr)
1526
1526
1527
1527
EXPORT_SYMBOL_GPL (kvm_write_tsc );
1528
1528
1529
+ static inline void adjust_tsc_offset_guest (struct kvm_vcpu * vcpu ,
1530
+ s64 adjustment )
1531
+ {
1532
+ kvm_x86_ops -> adjust_tsc_offset_guest (vcpu , adjustment );
1533
+ }
1534
+
1535
+ static inline void adjust_tsc_offset_host (struct kvm_vcpu * vcpu , s64 adjustment )
1536
+ {
1537
+ if (vcpu -> arch .tsc_scaling_ratio != kvm_default_tsc_scaling_ratio )
1538
+ WARN_ON (adjustment < 0 );
1539
+ adjustment = kvm_scale_tsc (vcpu , (u64 ) adjustment );
1540
+ kvm_x86_ops -> adjust_tsc_offset_guest (vcpu , adjustment );
1541
+ }
1542
+
1529
1543
#ifdef CONFIG_X86_64
1530
1544
1531
1545
static cycle_t read_tsc (void )
You can’t perform that action at this time.
0 commit comments