@@ -794,7 +794,7 @@ static void kvmppc_update_vpa_dispatch(struct kvm_vcpu *vcpu,
794
794
795
795
vpa -> enqueue_dispatch_tb = cpu_to_be64 (be64_to_cpu (vpa -> enqueue_dispatch_tb ) + stolen );
796
796
797
- __kvmppc_create_dtl_entry (vcpu , vpa , vc -> pcpu , now + vc -> tb_offset , stolen );
797
+ __kvmppc_create_dtl_entry (vcpu , vpa , vc -> pcpu , now + kvmppc_get_tb_offset ( vcpu ) , stolen );
798
798
799
799
vcpu -> arch .vpa .dirty = true;
800
800
}
@@ -845,9 +845,9 @@ static bool kvmppc_doorbell_pending(struct kvm_vcpu *vcpu)
845
845
846
846
static bool kvmppc_power8_compatible (struct kvm_vcpu * vcpu )
847
847
{
848
- if (vcpu -> arch . vcore -> arch_compat >= PVR_ARCH_207 )
848
+ if (kvmppc_get_arch_compat ( vcpu ) >= PVR_ARCH_207 )
849
849
return true;
850
- if ((!vcpu -> arch . vcore -> arch_compat ) &&
850
+ if ((!kvmppc_get_arch_compat ( vcpu ) ) &&
851
851
cpu_has_feature (CPU_FTR_ARCH_207S ))
852
852
return true;
853
853
return false;
@@ -2283,7 +2283,7 @@ static int kvmppc_get_one_reg_hv(struct kvm_vcpu *vcpu, u64 id,
2283
2283
* val = get_reg_val (id , vcpu -> arch .vcore -> dpdes );
2284
2284
break ;
2285
2285
case KVM_REG_PPC_VTB :
2286
- * val = get_reg_val (id , vcpu -> arch . vcore -> vtb );
2286
+ * val = get_reg_val (id , kvmppc_get_vtb ( vcpu ) );
2287
2287
break ;
2288
2288
case KVM_REG_PPC_DAWR :
2289
2289
* val = get_reg_val (id , vcpu -> arch .dawr0 );
@@ -2342,11 +2342,11 @@ static int kvmppc_get_one_reg_hv(struct kvm_vcpu *vcpu, u64 id,
2342
2342
spin_unlock (& vcpu -> arch .vpa_update_lock );
2343
2343
break ;
2344
2344
case KVM_REG_PPC_TB_OFFSET :
2345
- * val = get_reg_val (id , vcpu -> arch . vcore -> tb_offset );
2345
+ * val = get_reg_val (id , kvmppc_get_tb_offset ( vcpu ) );
2346
2346
break ;
2347
2347
case KVM_REG_PPC_LPCR :
2348
2348
case KVM_REG_PPC_LPCR_64 :
2349
- * val = get_reg_val (id , vcpu -> arch . vcore -> lpcr );
2349
+ * val = get_reg_val (id , kvmppc_get_lpcr ( vcpu ) );
2350
2350
break ;
2351
2351
case KVM_REG_PPC_PPR :
2352
2352
* val = get_reg_val (id , vcpu -> arch .ppr );
@@ -2418,7 +2418,7 @@ static int kvmppc_get_one_reg_hv(struct kvm_vcpu *vcpu, u64 id,
2418
2418
break ;
2419
2419
#endif
2420
2420
case KVM_REG_PPC_ARCH_COMPAT :
2421
- * val = get_reg_val (id , vcpu -> arch . vcore -> arch_compat );
2421
+ * val = get_reg_val (id , kvmppc_get_arch_compat ( vcpu ) );
2422
2422
break ;
2423
2423
case KVM_REG_PPC_DEC_EXPIRY :
2424
2424
* val = get_reg_val (id , kvmppc_get_dec_expires (vcpu ));
@@ -2523,7 +2523,7 @@ static int kvmppc_set_one_reg_hv(struct kvm_vcpu *vcpu, u64 id,
2523
2523
vcpu -> arch .vcore -> dpdes = set_reg_val (id , * val );
2524
2524
break ;
2525
2525
case KVM_REG_PPC_VTB :
2526
- vcpu -> arch . vcore -> vtb = set_reg_val (id , * val );
2526
+ kvmppc_set_vtb ( vcpu , set_reg_val (id , * val ) );
2527
2527
break ;
2528
2528
case KVM_REG_PPC_DAWR :
2529
2529
vcpu -> arch .dawr0 = set_reg_val (id , * val );
@@ -2606,10 +2606,11 @@ static int kvmppc_set_one_reg_hv(struct kvm_vcpu *vcpu, u64 id,
2606
2606
* decrementer, which is better than a large one that
2607
2607
* causes a hang.
2608
2608
*/
2609
+ kvmppc_set_tb_offset (vcpu , tb_offset );
2609
2610
if (!kvmppc_get_dec_expires (vcpu ) && tb_offset )
2610
2611
kvmppc_set_dec_expires (vcpu , get_tb () + tb_offset );
2611
2612
2612
- vcpu -> arch . vcore -> tb_offset = tb_offset ;
2613
+ kvmppc_set_tb_offset ( vcpu , tb_offset ) ;
2613
2614
break ;
2614
2615
}
2615
2616
case KVM_REG_PPC_LPCR :
@@ -4042,7 +4043,6 @@ static void vcpu_vpa_increment_dispatch(struct kvm_vcpu *vcpu)
4042
4043
/* call our hypervisor to load up HV regs and go */
4043
4044
static int kvmhv_vcpu_entry_p9_nested (struct kvm_vcpu * vcpu , u64 time_limit , unsigned long lpcr , u64 * tb )
4044
4045
{
4045
- struct kvmppc_vcore * vc = vcpu -> arch .vcore ;
4046
4046
unsigned long host_psscr ;
4047
4047
unsigned long msr ;
4048
4048
struct hv_guest_state hvregs ;
@@ -4122,7 +4122,7 @@ static int kvmhv_vcpu_entry_p9_nested(struct kvm_vcpu *vcpu, u64 time_limit, uns
4122
4122
if (!(lpcr & LPCR_LD )) /* Sign extend if not using large decrementer */
4123
4123
dec = (s32 ) dec ;
4124
4124
* tb = mftb ();
4125
- vcpu -> arch .dec_expires = dec + (* tb + vc -> tb_offset );
4125
+ vcpu -> arch .dec_expires = dec + (* tb + kvmppc_get_tb_offset ( vcpu ) );
4126
4126
4127
4127
timer_rearm_host_dec (* tb );
4128
4128
@@ -4681,7 +4681,7 @@ int kvmhv_run_single_vcpu(struct kvm_vcpu *vcpu, u64 time_limit,
4681
4681
4682
4682
tb = mftb ();
4683
4683
4684
- kvmppc_update_vpa_dispatch_p9 (vcpu , vc , tb + vc -> tb_offset );
4684
+ kvmppc_update_vpa_dispatch_p9 (vcpu , vc , tb + kvmppc_get_tb_offset ( vcpu ) );
4685
4685
4686
4686
trace_kvm_guest_enter (vcpu );
4687
4687
0 commit comments