@@ -794,7 +794,7 @@ static void kvmppc_update_vpa_dispatch(struct kvm_vcpu *vcpu,
794794
795795 vpa -> enqueue_dispatch_tb = cpu_to_be64 (be64_to_cpu (vpa -> enqueue_dispatch_tb ) + stolen );
796796
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 );
798798
799799 vcpu -> arch .vpa .dirty = true;
800800}
@@ -845,9 +845,9 @@ static bool kvmppc_doorbell_pending(struct kvm_vcpu *vcpu)
845845
846846static bool kvmppc_power8_compatible (struct kvm_vcpu * vcpu )
847847{
848- if (vcpu -> arch . vcore -> arch_compat >= PVR_ARCH_207 )
848+ if (kvmppc_get_arch_compat ( vcpu ) >= PVR_ARCH_207 )
849849 return true;
850- if ((!vcpu -> arch . vcore -> arch_compat ) &&
850+ if ((!kvmppc_get_arch_compat ( vcpu ) ) &&
851851 cpu_has_feature (CPU_FTR_ARCH_207S ))
852852 return true;
853853 return false;
@@ -2283,7 +2283,7 @@ static int kvmppc_get_one_reg_hv(struct kvm_vcpu *vcpu, u64 id,
22832283 * val = get_reg_val (id , vcpu -> arch .vcore -> dpdes );
22842284 break ;
22852285 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 ) );
22872287 break ;
22882288 case KVM_REG_PPC_DAWR :
22892289 * 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,
23422342 spin_unlock (& vcpu -> arch .vpa_update_lock );
23432343 break ;
23442344 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 ) );
23462346 break ;
23472347 case KVM_REG_PPC_LPCR :
23482348 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 ) );
23502350 break ;
23512351 case KVM_REG_PPC_PPR :
23522352 * 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,
24182418 break ;
24192419#endif
24202420 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 ) );
24222422 break ;
24232423 case KVM_REG_PPC_DEC_EXPIRY :
24242424 * 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,
25232523 vcpu -> arch .vcore -> dpdes = set_reg_val (id , * val );
25242524 break ;
25252525 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 ) );
25272527 break ;
25282528 case KVM_REG_PPC_DAWR :
25292529 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,
26062606 * decrementer, which is better than a large one that
26072607 * causes a hang.
26082608 */
2609+ kvmppc_set_tb_offset (vcpu , tb_offset );
26092610 if (!kvmppc_get_dec_expires (vcpu ) && tb_offset )
26102611 kvmppc_set_dec_expires (vcpu , get_tb () + tb_offset );
26112612
2612- vcpu -> arch . vcore -> tb_offset = tb_offset ;
2613+ kvmppc_set_tb_offset ( vcpu , tb_offset ) ;
26132614 break ;
26142615 }
26152616 case KVM_REG_PPC_LPCR :
@@ -4042,7 +4043,6 @@ static void vcpu_vpa_increment_dispatch(struct kvm_vcpu *vcpu)
40424043/* call our hypervisor to load up HV regs and go */
40434044static int kvmhv_vcpu_entry_p9_nested (struct kvm_vcpu * vcpu , u64 time_limit , unsigned long lpcr , u64 * tb )
40444045{
4045- struct kvmppc_vcore * vc = vcpu -> arch .vcore ;
40464046 unsigned long host_psscr ;
40474047 unsigned long msr ;
40484048 struct hv_guest_state hvregs ;
@@ -4122,7 +4122,7 @@ static int kvmhv_vcpu_entry_p9_nested(struct kvm_vcpu *vcpu, u64 time_limit, uns
41224122 if (!(lpcr & LPCR_LD )) /* Sign extend if not using large decrementer */
41234123 dec = (s32 ) dec ;
41244124 * tb = mftb ();
4125- vcpu -> arch .dec_expires = dec + (* tb + vc -> tb_offset );
4125+ vcpu -> arch .dec_expires = dec + (* tb + kvmppc_get_tb_offset ( vcpu ) );
41264126
41274127 timer_rearm_host_dec (* tb );
41284128
@@ -4681,7 +4681,7 @@ int kvmhv_run_single_vcpu(struct kvm_vcpu *vcpu, u64 time_limit,
46814681
46824682 tb = mftb ();
46834683
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 ) );
46854685
46864686 trace_kvm_guest_enter (vcpu );
46874687
0 commit comments