36 lines
1.4 KiB
Diff
36 lines
1.4 KiB
Diff
|
From: Richard Henderson <richard.henderson@linaro.org>
|
||
|
Date: Mon, 21 Dec 2020 12:44:26 -0800
|
||
|
Subject: target/arm: Fix MTE0_ACTIVE
|
||
|
|
||
|
Git-commit: cc97b0019bb590b9b3c2a623e9ebee48831e0ce3
|
||
|
|
||
|
In 50244cc76abc we updated mte_check_fail to match the ARM
|
||
|
pseudocode, using the correct EL to select the TCF field.
|
||
|
But we failed to update MTE0_ACTIVE the same way, which led
|
||
|
to g_assert_not_reached().
|
||
|
|
||
|
Cc: qemu-stable@nongnu.org
|
||
|
Buglink: https://bugs.launchpad.net/bugs/1907137
|
||
|
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
|
||
|
Message-id: 20201221204426.88514-1-richard.henderson@linaro.org
|
||
|
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
|
||
|
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
||
|
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||
|
---
|
||
|
target/arm/helper.c | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/target/arm/helper.c b/target/arm/helper.c
|
||
|
index 38cd35c049292d40df5a35854f4b..194d752763b2a74af2e4e45e0a96 100644
|
||
|
--- a/target/arm/helper.c
|
||
|
+++ b/target/arm/helper.c
|
||
|
@@ -12927,7 +12927,7 @@ static uint32_t rebuild_hflags_a64(CPUARMState *env, int el, int fp_el,
|
||
|
if (FIELD_EX32(flags, TBFLAG_A64, UNPRIV)
|
||
|
&& tbid
|
||
|
&& !(env->pstate & PSTATE_TCO)
|
||
|
- && (sctlr & SCTLR_TCF0)
|
||
|
+ && (sctlr & SCTLR_TCF)
|
||
|
&& allocation_tag_access_enabled(env, 0, sctlr)) {
|
||
|
flags = FIELD_DP32(flags, TBFLAG_A64, MTE0_ACTIVE, 1);
|
||
|
}
|