[GIT PULL] arm64 fixes for -rc7

Will Deacon
2024-11-08T12:14:07Z

Hi Linus,

As promised, here is a (hopefully) final round of arm64 fixes for 6.12
that address some user-visible floating point register corruption. Both
of the Marks have been working on this for a couple of weeks and we've
ended up in a position where SVE is solid but SME still has enough
pending issues that the most pragmatic solution for the release and
stable backports is to disable the feature. Yes, it's a shame, but the
hardware is rare as hen's teeth at the moment and we're better off
getting back to a known good state before fixing it all properly. We're
also improving the selftests for 6.13 to help avoid merging broken code
in the future.

Anyway, the good news is that we're removing a lot more code than we're
adding.

Cheers,

Will

--->8

The following changes since commit 2e8a1acea8597ff42189ea94f0a63fa58640223d:

arm64: signal: Improve POR_EL0 handling to avoid uaccess failures (2024-10-29 17:59:12 +0000)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git tags/arm64-fixes

for you to fetch changes up to 81235ae0c846e1fb46a2c6fe9283fe2b2b24f7dc:

arm64: Kconfig: Make SME depend on BROKEN for now (2024-11-07 11:20:35 +0000)

----------------------------------------------------------------
arm64 fixes for -rc7

- Fix handling of SVE traps from userspace on preemptible kernels when
converting the saved floating point state into SVE state.

- Remove broken support for the SMCCCv1.3 "SVE discard hint"
optimisation.

- Disable SME support, as the current support code suffers from numerous
issues around signal delivery, ptrace access and context-switch which
can lead to user-visible corruption of the register state.

----------------------------------------------------------------
Mark Brown (1):
arm64/sve: Discard stale CPU state when handling SVE traps

Mark Rutland (2):
arm64: smccc: Remove broken support for SMCCCv1.3 SVE discard hint
arm64: Kconfig: Make SME depend on BROKEN for now

arch/arm64/Kconfig | 1 +
arch/arm64/kernel/fpsimd.c | 1 +
arch/arm64/kernel/smccc-call.S | 35 +++--------------------------------
drivers/firmware/smccc/smccc.c | 4 ----
include/linux/arm-smccc.h | 32 +++-----------------------------
5 files changed, 8 insertions(+), 65 deletions(-)