diff options
author | Richard Henderson | 2021-09-18 02:49:05 +0200 |
---|---|---|
committer | Richard Henderson | 2021-11-02 12:00:52 +0100 |
commit | 5e98763c0ef55fbd8fe4fe8614825ab508543d32 (patch) | |
tree | 12c38e52cfa5f4af884f736d4e5a9883e16eead1 /target/arm | |
parent | target/alpha: Implement alpha_cpu_record_sigsegv (diff) | |
download | qemu-5e98763c0ef55fbd8fe4fe8614825ab508543d32.tar.gz qemu-5e98763c0ef55fbd8fe4fe8614825ab508543d32.tar.xz qemu-5e98763c0ef55fbd8fe4fe8614825ab508543d32.zip |
target/arm: Use cpu_loop_exit_sigsegv for mte tag lookup
Use the new os interface for raising the exception,
rather than calling arm_cpu_tlb_fill directly.
Reviewed-by: Warner Losh <imp@bsdimp.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target/arm')
-rw-r--r-- | target/arm/mte_helper.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/target/arm/mte_helper.c b/target/arm/mte_helper.c index 724175210b..e09b7e46a2 100644 --- a/target/arm/mte_helper.c +++ b/target/arm/mte_helper.c @@ -84,10 +84,8 @@ static uint8_t *allocation_tag_mem(CPUARMState *env, int ptr_mmu_idx, uintptr_t index; if (!(flags & (ptr_access == MMU_DATA_STORE ? PAGE_WRITE_ORG : PAGE_READ))) { - /* SIGSEGV */ - arm_cpu_tlb_fill(env_cpu(env), ptr, ptr_size, ptr_access, - ptr_mmu_idx, false, ra); - g_assert_not_reached(); + cpu_loop_exit_sigsegv(env_cpu(env), ptr, ptr_access, + !(flags & PAGE_VALID), ra); } /* Require both MAP_ANON and PROT_MTE for the page. */ |