KVM: arm64: Document check for TIF_FOREIGN_FPSTATE
authorMark Brown <broonie@kernel.org>
Tue, 7 Mar 2023 17:37:14 +0000 (17:37 +0000)
committerMarc Zyngier <maz@kernel.org>
Fri, 21 Apr 2023 12:46:20 +0000 (13:46 +0100)
In kvm_arch_vcpu_load_fp() we unconditionally set the current FP state
to FP_STATE_HOST_OWNED, this will be overridden to FP_STATE_NONE if
TIF_FOREIGN_FPSTATE is set but the check is deferred until
kvm_arch_vcpu_ctxflush_fp() where we are no longer preemptable. Add a
comment to this effect to help avoid people being concerned about the
lack of a check and discover where the check is done.

Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221214-kvm-arm64-sme-context-switch-v2-1-57ba0082e9ff@kernel.org
arch/arm64/kvm/fpsimd.c

index 1279949..3fd0ce6 100644 (file)
@@ -81,6 +81,11 @@ void kvm_arch_vcpu_load_fp(struct kvm_vcpu *vcpu)
 
        fpsimd_kvm_prepare();
 
+       /*
+        * We will check TIF_FOREIGN_FPSTATE just before entering the
+        * guest in kvm_arch_vcpu_ctxflush_fp() and override this to
+        * FP_STATE_FREE if the flag set.
+        */
        vcpu->arch.fp_state = FP_STATE_HOST_OWNED;
 
        vcpu_clear_flag(vcpu, HOST_SVE_ENABLED);