Commit 704ec48f authored by Sean Christopherson's avatar Sean Christopherson
Browse files

KVM: SVM: Use sev_es_host_save_area() helper when initializing tsc_aux

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: default avatarSean Christopherson <seanjc@google.com>
parent 34830b3c
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -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);