On Fri, Mar 06, 2026 at 05:00:54PM +0000, Mark Brown wrote: > Currently we enable EL0 and EL1 access to FA64 and ZT0 at boot and leave > them enabled throughout the runtime of the system. When we add KVM support > we will need to make this configuration dynamic, these features may be > disabled for some KVM guests. Since the host kernel saves the floating > point state for non-protected guests and we wish to avoid KVM having to > reload the floating point state needlessly on guest reentry let's move the > configuration of these enables to the floating point state reload. > > We provide a helper which does the configuration as part of a > read/modify/write operation along with the configuration of the task VL, > then update the floating point state load and SME access trap to use it. > We also remove the setting of the enable bits from the CPU feature > identification and resume paths. There will be a small overhead from > setting the enables one at a time but this should be negligible in the > context of the state load or access trap. In order to avoid compiler > warnings due to unused variables in !CONFIG_ARM64_SME cases we avoid > storing the vector length in temporary variables. > > Signed-off-by: Mark Brown <[email protected]>
Reviewed-by: Catalin Marinas <[email protected]>

