[PATCH v2 00/13] arm64: Preparatory FPSIMD/SVE/SME fixes

Mark Rutland mark.rutland at arm.com
Wed Apr 9 09:39:57 PDT 2025


Hi,

These patches fix a number of problems in the FPSIMD/SVE/SME code, as a
step towards re-enabling SME support. Additional fixes/changes will be
necessary before we can re-enable SME support. I intend to follow up
with more patches in the near future.

I'm hoping these patches as-is are largely uncontroversial, though I'm
afraid they've only seen light/targeted testing so far, so any testing
would be much appreciated.

The series is based on v6.15-rc1, and I've pushed the series to the
'arm64-fpsimd-fixes-20250409' branch of my kernel.org git repo:

  git://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git
  https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/

Since v1 [1]:
* Drop removal of redundant TIF_SVE clearing; this requires more preparatory work.
* Remove leftover prototype for fpsimd_force_sync_to_sve().
* Clarify commit message for opportunistic freeing of sve_state.
* Add Mark Brown's Reviewed-by tags.
  
[1] https://lore.kernel.org/linux-arm-kernel/20250404174435.3288106-1-mark.rutland@arm.com/

Mark.

Mark Brown (2):
  arm64/fpsimd: Discard stale CPU state when handling SME traps
  arm64/fpsimd: Don't corrupt FPMR when streaming mode changes

Mark Rutland (11):
  arm64/fpsimd: Avoid RES0 bits in the SME trap handler
  arm64/fpsimd: Remove unused fpsimd_force_sync_to_sve()
  arm64/fpsimd: Remove redundant SVE trap manipulation
  arm64/fpsimd: Remove opportunistic freeing of SME state
  arm64/fpsimd: Avoid clobbering kernel FPSIMD state with SMSTOP
  arm64/fpsimd: Reset FPMR upon exec()
  arm64/fpsimd: Fix merging of FPSIMD state during signal return
  arm64/fpsimd: Add fpsimd_save_and_flush_current_state()
  arm64/fpsimd: signal32: Always save+flush state early
  arm64/fpsimd: signal: Always save+flush state early
  arm64/fpsimd: signal: Simplify preserve_tpidr2_context()

 arch/arm64/include/asm/esr.h    | 14 ++---
 arch/arm64/include/asm/fpsimd.h |  3 +-
 arch/arm64/kernel/fpsimd.c      | 95 ++++++++++-----------------------
 arch/arm64/kernel/signal.c      | 71 +++++-------------------
 arch/arm64/kernel/signal32.c    | 11 ++--
 5 files changed, 59 insertions(+), 135 deletions(-)

-- 
2.30.2




More information about the linux-arm-kernel mailing list