On Tue, 23 Dec 2025 at 01:21, Mark Brown <[email protected]> wrote: > > Currently when deciding if we need to save FFR when in streaming mode prior > to EFI calls we check if FA64 is supported by the system. Since KVM guest > support will mean that FA64 might be enabled and disabled at runtime switch > to checking if traps for FA64 are enabled in SMCR_EL1 instead. > > Signed-off-by: Mark Brown <[email protected]>
Reviewed-by: Fuad Tabba <[email protected]> Cheers, /fuad > --- > arch/arm64/kernel/fpsimd.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c > index 887fce177c92..f4e8cee00198 100644 > --- a/arch/arm64/kernel/fpsimd.c > +++ b/arch/arm64/kernel/fpsimd.c > @@ -1948,6 +1948,11 @@ static bool efi_sm_state; > * either doing something wrong or you need to propose some refactoring. > */ > > +static bool fa64_enabled(void) > +{ > + return read_sysreg_s(SYS_SMCR_EL1) & SMCR_ELx_FA64; > +} > + > /* > * __efi_fpsimd_begin(): prepare FPSIMD for making an EFI runtime services > call > */ > @@ -1980,7 +1985,7 @@ void __efi_fpsimd_begin(void) > * Unless we have FA64 FFR does not > * exist in streaming mode. > */ > - if (!system_supports_fa64()) > + if (!fa64_enabled()) > ffr = !(svcr & SVCR_SM_MASK); > } > > @@ -2028,7 +2033,7 @@ void __efi_fpsimd_end(void) > * Unless we have FA64 FFR does not > * exist in streaming mode. > */ > - if (!system_supports_fa64()) > + if (!fa64_enabled()) > ffr = false; > } > } > > -- > 2.47.3 >
