diff options
author | Richard Henderson | 2022-10-05 00:40:22 +0200 |
---|---|---|
committer | Richard Henderson | 2022-10-26 03:11:28 +0200 |
commit | 8269c01417a3e0bdb444b1bdac1d9b6c8bc9e667 (patch) | |
tree | 2b4f78b28762cc3939822cd6c4ac0b3af724b12e /accel | |
parent | accel/tcg: Move TARGET_PAGE_DATA_SIZE impl to user-exec.c (diff) | |
download | qemu-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.c | 16 |
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; } |