arm64/signal: Don't assume that TIF_SVE means we saved SVE state
authorMark Brown <broonie@kernel.org>
Tue, 30 Jan 2024 15:43:53 +0000 (15:43 +0000)
committerWill Deacon <will@kernel.org>
Fri, 9 Feb 2024 16:34:23 +0000 (16:34 +0000)
commit61da7c8e2a602f66be578cbbcebe8638c10e0f48
treeab3697e707983b5e38c2b09935f001b2884a7e18
parent54be6c6c5ae8e0d93a6c4641cb7528eb0b6ba478
arm64/signal: Don't assume that TIF_SVE means we saved SVE state

When we are in a syscall we will only save the FPSIMD subset even though
the task still has access to the full register set, and on context switch
we will only remove TIF_SVE when loading the register state. This means
that the signal handling code should not assume that TIF_SVE means that
the register state is stored in SVE format, it should instead check the
format that was recorded during save.

Fixes: 8c845e273104 ("arm64/sve: Leave SVE enabled on syscall if we don't context switch")
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240130-arm64-sve-signal-regs-v2-1-9fc6f9502782@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/fpsimd.c
arch/arm64/kernel/signal.c