From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org
Subject: [PATCH v6 22/31] target/arm: Use the proper TBI settings for linux-user
Date: Tue, 9 Feb 2021 16:02:14 -0800 [thread overview]
Message-ID: <20210210000223.884088-23-richard.henderson@linaro.org> (raw)
In-Reply-To: <20210210000223.884088-1-richard.henderson@linaro.org>
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 448982dd2f..1f7f81f10e 100644
--- a/target/arm/internals.h
+++ b/target/arm/internals.h
@@ -1419,9 +1419,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 8ddb2556f8..761f0c61bd 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
next prev parent reply other threads:[~2021-02-10 0:24 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-10 0:01 [PATCH v6 00/31] target-arm: Implement ARMv8.5-MemTag, user mode Richard Henderson
2021-02-10 0:01 ` [PATCH v6 01/31] tcg: Introduce target-specific page data for user-only Richard Henderson
2021-02-10 0:01 ` [PATCH v6 02/31] linux-user: Introduce PAGE_ANON Richard Henderson
2021-02-10 0:01 ` [PATCH v6 03/31] exec: Use uintptr_t for guest_base Richard Henderson
2021-02-10 0:01 ` [PATCH v6 04/31] exec: Use uintptr_t in cpu_ldst.h Richard Henderson
2021-02-10 0:01 ` [PATCH v6 05/31] exec: Improve types for guest_addr_valid Richard Henderson
2021-02-10 0:01 ` [PATCH v6 06/31] linux-user: Check for overflow in access_ok Richard Henderson
2021-02-10 0:01 ` [PATCH v6 07/31] linux-user: Tidy VERIFY_READ/VERIFY_WRITE Richard Henderson
2021-02-10 0:02 ` [PATCH v6 08/31] bsd-user: " Richard Henderson
2021-02-10 0:02 ` [PATCH v6 09/31] linux-user: Do not use guest_addr_valid for h2g_valid Richard Henderson
2021-02-10 0:02 ` [PATCH v6 10/31] linux-user: Fix guest_addr_valid vs reserved_va Richard Henderson
2021-02-10 0:02 ` [PATCH v6 11/31] exec: Introduce cpu_untagged_addr Richard Henderson
2021-02-10 0:02 ` [PATCH v6 12/31] exec: Use cpu_untagged_addr in g2h; split out g2h_untagged Richard Henderson
2021-02-10 0:02 ` [PATCH v6 13/31] linux-user: Explicitly untag memory management syscalls Richard Henderson
2021-02-10 0:02 ` [PATCH v6 14/31] linux-user: Use guest_range_valid in access_ok Richard Henderson
2021-02-10 0:02 ` [PATCH v6 15/31] exec: Rename guest_{addr,range}_valid to *_untagged Richard Henderson
2021-02-10 0:02 ` [PATCH v6 16/31] linux-user: Use cpu_untagged_addr in access_ok; split out *_untagged Richard Henderson
2021-02-10 0:02 ` [PATCH v6 17/31] linux-user: Move lock_user et al out of line Richard Henderson
2021-02-10 0:02 ` [PATCH v6 18/31] linux-user: Fix types in uaccess.c Richard Henderson
2021-02-10 0:02 ` [PATCH v6 19/31] linux-user: Handle tags in lock_user/unlock_user Richard Henderson
2021-02-10 11:05 ` Peter Maydell
2021-02-10 0:02 ` [PATCH v6 20/31] linux-user/aarch64: Implement PR_TAGGED_ADDR_ENABLE Richard Henderson
2021-02-10 0:02 ` [PATCH v6 21/31] target/arm: Improve gen_top_byte_ignore Richard Henderson
2021-02-10 0:02 ` Richard Henderson [this message]
2021-02-10 0:02 ` [PATCH v6 23/31] linux-user/aarch64: Implement PR_MTE_TCF and PR_MTE_TAG Richard Henderson
2021-02-10 0:02 ` [PATCH v6 24/31] linux-user/aarch64: Implement PROT_MTE Richard Henderson
2021-02-10 0:02 ` [PATCH v6 25/31] target/arm: Split out syndrome.h from internals.h Richard Henderson
2021-02-10 0:02 ` [PATCH v6 26/31] linux-user/aarch64: Pass syndrome to EXC_*_ABORT Richard Henderson
2021-02-10 0:02 ` [PATCH v6 27/31] linux-user/aarch64: Signal SEGV_MTESERR for sync tag check fault Richard Henderson
2021-02-10 0:02 ` [PATCH v6 28/31] linux-user/aarch64: Signal SEGV_MTEAERR for async tag check error Richard Henderson
2021-02-10 0:02 ` [PATCH v6 29/31] target/arm: Add allocation tag storage for user mode Richard Henderson
2021-02-10 0:02 ` [PATCH v6 30/31] target/arm: Enable MTE for user-only Richard Henderson
2021-02-10 0:02 ` [PATCH v6 31/31] tests/tcg/aarch64: Add mte smoke tests Richard Henderson
2021-02-11 10:44 ` [PATCH v6 00/31] target-arm: Implement ARMv8.5-MemTag, user mode Peter Maydell
2021-02-11 19:46 ` Peter Maydell
2021-02-11 11:10 ` no-reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210210000223.884088-23-richard.henderson@linaro.org \
--to=richard.henderson@linaro.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).