[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v7 22/31] target/arm: Use the proper TBI settings for linux-user
From: |
Richard Henderson |
Subject: |
[PATCH v7 22/31] target/arm: Use the proper TBI settings for linux-user |
Date: |
Fri, 12 Feb 2021 10:48:53 -0800 |
We were fudging TBI1 enabled to speed up the generated code.
Now that we've improved the code generation, remove this.
Also, tidy the comment to reflect the current code.
The pauth test was testing a kernel address (-1) and making
incorrect assumptions about TBI1; stick to userland addresses.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/arm/internals.h | 4 ++--
target/arm/cpu.c | 10 +++-------
tests/tcg/aarch64/pauth-2.c | 1 -
3 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/target/arm/internals.h b/target/arm/internals.h
index b251fe4450..112bbb14f0 100644
--- a/target/arm/internals.h
+++ b/target/arm/internals.h
@@ -1425,9 +1425,9 @@ static inline bool tcma_check(uint32_t desc, int bit55,
int ptr_tag)
*/
static inline uint64_t useronly_clean_ptr(uint64_t ptr)
{
- /* TBI is known to be enabled. */
#ifdef CONFIG_USER_ONLY
- ptr = sextract64(ptr, 0, 56);
+ /* TBI0 is known to be enabled, while TBI1 is disabled. */
+ ptr &= sextract64(ptr, 0, 56);
#endif
return ptr;
}
diff --git a/target/arm/cpu.c b/target/arm/cpu.c
index 5cf6c056c5..70cfcbc918 100644
--- a/target/arm/cpu.c
+++ b/target/arm/cpu.c
@@ -205,14 +205,10 @@ static void arm_cpu_reset(DeviceState *dev)
env->vfp.zcr_el[1] = MIN(cpu->sve_max_vq - 1, 3);
}
/*
- * Enable TBI0 and TBI1. While the real kernel only enables TBI0,
- * turning on both here will produce smaller code and otherwise
- * make no difference to the user-level emulation.
- *
- * In sve_probe_page, we assume that this is set.
- * Do not modify this without other changes.
+ * Enable TBI0 but not TBI1.
+ * Note that this must match useronly_clean_ptr.
*/
- env->cp15.tcr_el[1].raw_tcr = (3ULL << 37);
+ env->cp15.tcr_el[1].raw_tcr = (1ULL << 37);
#else
/* Reset into the highest available EL */
if (arm_feature(env, ARM_FEATURE_EL3)) {
diff --git a/tests/tcg/aarch64/pauth-2.c b/tests/tcg/aarch64/pauth-2.c
index 9bba0beb63..978652ede3 100644
--- a/tests/tcg/aarch64/pauth-2.c
+++ b/tests/tcg/aarch64/pauth-2.c
@@ -53,7 +53,6 @@ void do_test(uint64_t value)
int main()
{
do_test(0);
- do_test(-1);
do_test(0xda004acedeadbeefull);
return 0;
}
--
2.25.1
- [PATCH v7 04/31] exec: Use uintptr_t in cpu_ldst.h, (continued)
- [PATCH v7 04/31] exec: Use uintptr_t in cpu_ldst.h, Richard Henderson, 2021/02/12
- [PATCH v7 08/31] bsd-user: Tidy VERIFY_READ/VERIFY_WRITE, Richard Henderson, 2021/02/12
- [PATCH v7 13/31] linux-user: Explicitly untag memory management syscalls, Richard Henderson, 2021/02/12
- [PATCH v7 09/31] linux-user: Do not use guest_addr_valid for h2g_valid, Richard Henderson, 2021/02/12
- [PATCH v7 07/31] linux-user: Tidy VERIFY_READ/VERIFY_WRITE, Richard Henderson, 2021/02/12
- [PATCH v7 12/31] exec: Use cpu_untagged_addr in g2h; split out g2h_untagged, Richard Henderson, 2021/02/12
- [PATCH v7 15/31] exec: Rename guest_{addr,range}_valid to *_untagged, Richard Henderson, 2021/02/12
- [PATCH v7 11/31] exec: Introduce cpu_untagged_addr, Richard Henderson, 2021/02/12
- [PATCH v7 10/31] linux-user: Fix guest_addr_valid vs reserved_va, Richard Henderson, 2021/02/12
- [PATCH v7 22/31] target/arm: Use the proper TBI settings for linux-user,
Richard Henderson <=
- [PATCH v7 19/31] linux-user: Handle tags in lock_user/unlock_user, Richard Henderson, 2021/02/12
- [PATCH v7 06/31] linux-user: Check for overflow in access_ok, Richard Henderson, 2021/02/12
- [PATCH v7 16/31] linux-user: Use cpu_untagged_addr in access_ok; split out *_untagged, Richard Henderson, 2021/02/12
- [PATCH v7 17/31] linux-user: Move lock_user et al out of line, Richard Henderson, 2021/02/12
- [PATCH v7 14/31] linux-user: Use guest_range_valid in access_ok, Richard Henderson, 2021/02/12
- [PATCH v7 20/31] linux-user/aarch64: Implement PR_TAGGED_ADDR_ENABLE, Richard Henderson, 2021/02/12
- [PATCH v7 18/31] linux-user: Fix types in uaccess.c, Richard Henderson, 2021/02/12