arm64/sme: Optimise SME exit on syscall entry
authorMark Brown <broonie@kernel.org>
Tue, 10 Jan 2023 19:34:36 +0000 (19:34 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Thu, 12 Jan 2023 17:09:21 +0000 (17:09 +0000)
commitb2482807fbd48a299512d161e38262fd7d973aa0
tree1b32f3d798a38b640fde57b22021660b3c4dba52
parentfcd3d2c082b2a19da2326b2b38ba5a05536dcd32
arm64/sme: Optimise SME exit on syscall entry

Our ABI says that we exit streaming mode on syscall entry. Currently we
check if we are in streaming mode before doing this but since we have a
SMSTOP SM instruction which will clear SVCR.SM in a single atomic operation
we can save ourselves the read of the system register and check of the flag
and just unconditionally do the SMSTOP SM. If we are not in streaming mode
it results in a noop change to SVCR, if we are in streaming mode we will
exit as desired.

No functional change.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20230110-arm64-sme-syscall-smstop-v1-1-ac94235fd810@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kernel/syscall.c