From dfd5d02bca9c0a4dccf4f67d4a0b5221b9ec63ff Mon Sep 17 00:00:00 2001 From: Fuad Tabba Date: Mon, 13 Feb 2023 08:54:55 +0000 Subject: [PATCH] ANDROID: KVM: arm64: Use helper to get the host fpsimd state in pKVM Subsequent patches will change how the fpsimd state is allocated, and add tracking of sve state. Moving this to a helper makes future code cleaner and patches easier to reason about. No functional change intended. Signed-off-by: Fuad Tabba Bug: 267291591 Change-Id: Ic46b8889c1fe11f0cfdd7b5f3d2b98bf412183f0 --- arch/arm64/kvm/hyp/nvhe/hyp-main.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-main.c b/arch/arm64/kvm/hyp/nvhe/hyp-main.c index ab34c831f824..4cb20eed14e2 100644 --- a/arch/arm64/kvm/hyp/nvhe/hyp-main.c +++ b/arch/arm64/kvm/hyp/nvhe/hyp-main.c @@ -419,6 +419,11 @@ static const hyp_entry_exit_handler_fn exit_hyp_vm_handlers[] = { [ESR_ELx_EC_DABT_LOW] = handle_vm_exit_abt, }; +static struct user_fpsimd_state *get_host_fpsimd_state(void) +{ + return this_cpu_ptr(&loaded_host_fpsimd_state); +} + static void flush_hyp_vgic_state(struct pkvm_hyp_vcpu *hyp_vcpu) { struct kvm_vcpu *host_vcpu = hyp_vcpu->host_vcpu; @@ -689,7 +694,7 @@ static void fpsimd_host_restore(void) struct pkvm_hyp_vcpu *hyp_vcpu = pkvm_get_loaded_hyp_vcpu(); struct user_fpsimd_state *host_fpsimd_state; - host_fpsimd_state = this_cpu_ptr(&loaded_host_fpsimd_state); + host_fpsimd_state = get_host_fpsimd_state(); if (vcpu_has_sve(&hyp_vcpu->vcpu)) __hyp_sve_save_guest(hyp_vcpu); @@ -733,7 +738,7 @@ static void handle___pkvm_vcpu_load(struct kvm_cpu_context *host_ctxt) *last_ran = hyp_vcpu->vcpu.vcpu_id; } - hyp_vcpu->vcpu.arch.host_fpsimd_state = this_cpu_ptr(&loaded_host_fpsimd_state); + hyp_vcpu->vcpu.arch.host_fpsimd_state = get_host_fpsimd_state(); hyp_vcpu->vcpu.arch.fp_state = FP_STATE_HOST_OWNED; if (pkvm_hyp_vcpu_is_protected(hyp_vcpu)) {