summaryrefslogtreecommitdiffstats
path: root/accel
diff options
context:
space:
mode:
authorRichard Henderson2022-10-05 00:40:22 +0200
committerRichard Henderson2022-10-26 03:11:28 +0200
commit8269c01417a3e0bdb444b1bdac1d9b6c8bc9e667 (patch)
tree2b4f78b28762cc3939822cd6c4ac0b3af724b12e /accel
parentaccel/tcg: Move TARGET_PAGE_DATA_SIZE impl to user-exec.c (diff)
downloadqemu-8269c01417a3e0bdb444b1bdac1d9b6c8bc9e667.tar.gz
qemu-8269c01417a3e0bdb444b1bdac1d9b6c8bc9e667.tar.xz
qemu-8269c01417a3e0bdb444b1bdac1d9b6c8bc9e667.zip
accel/tcg: Simplify page_get/alloc_target_data
Since the only user, Arm MTE, always requires allocation, merge the get and alloc functions to always produce a non-null result. Also assume that the user has already checked page validity. Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'accel')
-rw-r--r--accel/tcg/user-exec.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c
index 927b91900f..fb7d6ee9e9 100644
--- a/accel/tcg/user-exec.c
+++ b/accel/tcg/user-exec.c
@@ -242,19 +242,11 @@ void page_reset_target_data(target_ulong start, target_ulong end)
void *page_get_target_data(target_ulong address)
{
PageDesc *p = page_find(address >> TARGET_PAGE_BITS);
- return p ? p->target_data : NULL;
-}
+ void *ret = p->target_data;
-void *page_alloc_target_data(target_ulong address)
-{
- PageDesc *p = page_find(address >> TARGET_PAGE_BITS);
- void *ret = NULL;
-
- if (p->flags & PAGE_VALID) {
- ret = p->target_data;
- if (!ret) {
- p->target_data = ret = g_malloc0(TARGET_PAGE_DATA_SIZE);
- }
+ if (!ret) {
+ ret = g_malloc0(TARGET_PAGE_DATA_SIZE);
+ p->target_data = ret;
}
return ret;
}