]> git.ipfire.org Git - thirdparty/qemu.git/commit
target/arm: Don't enforce NSE,NS check for EL3->EL3 returns
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 4 Jul 2025 16:56:36 +0000 (17:56 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 10 Jul 2025 08:23:24 +0000 (09:23 +0100)
commitc563cd7e61d074f58eef413322144461dd243716
treea5526274f2ec6d62d9c82c4b3a17c81ae88ae25f
parentae2086426d3784cf66e5b0b7ac823c08e87b4c57
target/arm: Don't enforce NSE,NS check for EL3->EL3 returns

In the Arm ARM, rule R_TYTWB that defines illegal exception return cases
includes the case:
 If FEAT_RME is implemented, then if SCR_EL3.{NSE, NS} is {1, 0}, an
 exception return from EL3 to a lower Exception level

Our implementation of this check fails to check that the
return is to a lower exception level, so it will incorrectly fire on
EL3->EL3 exception returns.

Fix the check condition. This requires us to move it further
down in the function to a point where we know the new_el value.

Fixes: 35aa6715ddcd9 ("target/arm: Catch illegal-exception-return from EL3 with bad NSE/NS")
Cc: qemu-stable@nongnu.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3016
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20250704165636.261888-1-peter.maydell@linaro.org
target/arm/tcg/helper-a64.c