KVM: SVM: Use sev_es_host_save_area() helper when initializing tsc_aux
authorSean Christopherson <seanjc@google.com>
Mon, 17 Jun 2024 21:04:31 +0000 (14:04 -0700)
committerSean Christopherson <seanjc@google.com>
Fri, 28 Jun 2024 15:53:00 +0000 (08:53 -0700)
Use sev_es_host_save_area() instead of open coding an equivalent when
setting the MSR_TSC_AUX field during setup.

No functional change intended.

Link: https://lore.kernel.org/r/20240617210432.1642542-3-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/svm/svm.c

index 33728ce4d44beddf73d45467893ad70d06fddc19..7d396f5fa010a7a9e2f0a811065ce1e0fed2fca8 100644 (file)
@@ -569,6 +569,11 @@ static void __svm_write_tsc_multiplier(u64 multiplier)
        __this_cpu_write(current_tsc_ratio, multiplier);
 }
 
+static __always_inline struct sev_es_save_area *sev_es_host_save_area(struct svm_cpu_data *sd)
+{
+       return page_address(sd->save_area) + 0x400;
+}
+
 static inline void kvm_cpu_svm_disable(void)
 {
        uint64_t efer;
@@ -673,12 +678,9 @@ static int svm_hardware_enable(void)
         * TSC_AUX field now to avoid a RDMSR on every vCPU run.
         */
        if (boot_cpu_has(X86_FEATURE_V_TSC_AUX)) {
-               struct sev_es_save_area *hostsa;
                u32 __maybe_unused msr_hi;
 
-               hostsa = (struct sev_es_save_area *)(page_address(sd->save_area) + 0x400);
-
-               rdmsr(MSR_TSC_AUX, hostsa->tsc_aux, msr_hi);
+               rdmsr(MSR_TSC_AUX, sev_es_host_save_area(sd)->tsc_aux, msr_hi);
        }
 
        return 0;
@@ -1495,11 +1497,6 @@ static void svm_vcpu_free(struct kvm_vcpu *vcpu)
        __free_pages(virt_to_page(svm->msrpm), get_order(MSRPM_SIZE));
 }
 
-static __always_inline struct sev_es_save_area *sev_es_host_save_area(struct svm_cpu_data *sd)
-{
-       return page_address(sd->save_area) + 0x400;
-}
-
 static void svm_prepare_switch_to_guest(struct kvm_vcpu *vcpu)
 {
        struct vcpu_svm *svm = to_svm(vcpu);