]> git.ipfire.org Git - thirdparty/qemu.git/commit
linux-user/aarch64: Support TPIDR2_MAGIC signal frame record
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 25 Jul 2025 17:55:09 +0000 (18:55 +0100)
committerMichael Tokarev <mjt@tls.msk.ru>
Mon, 28 Jul 2025 16:09:07 +0000 (19:09 +0300)
commit309f46d07720bcf2c194cfeaa8980334c3f47b09
tree8795e4e345dcfc3ac9fe71e7cfd2f7704865177a
parent7764278a309682ddeb7650f5042a3135caa5bfd0
linux-user/aarch64: Support TPIDR2_MAGIC signal frame record

FEAT_SME adds the TPIDR2 userspace-accessible system register, which
is used as part of the procedure calling standard's lazy saving
scheme for the ZA registers:
 https://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst#66the-za-lazy-saving-scheme

The Linux kernel has a signal frame record for saving
and restoring this value when calling signal handlers, but
we forgot to implement this. The result is that code which
tries to unwind an exception out of a signal handler will
not work correctly.

Add support for the missing record.

Cc: qemu-stable@nongnu.org
Fixes: 78011586b90d1 ("target/arm: Enable SME for user-only")
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20250725175510.3864231-3-peter.maydell@linaro.org>
(cherry picked from commit 99870aff907b1c863cd32558b543f0ab0d0e74ba)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
linux-user/aarch64/signal.c