From: Gustavo Romero Date: Fri, 5 Jul 2024 08:40:40 +0000 (+0100) Subject: target/arm: Fix exception case in allocation_tag_mem_probe X-Git-Tag: qemu-xen-4.20.0~85^2~7 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=41bfb6704eed12015ddead4e507b97b39b1ff5f6;p=qemu-xen.git target/arm: Fix exception case in allocation_tag_mem_probe If page in 'ptr_access' is inaccessible and probe is 'true' allocation_tag_mem_probe should not throw an exception, but currently it does, so fix it. Signed-off-by: Gustavo Romero Reviewed-by: Alex Bennée Reviewed-by: Richard Henderson Message-Id: <20240628050850.536447-5-gustavo.romero@linaro.org> Signed-off-by: Alex Bennée Message-Id: <20240705084047.857176-34-alex.bennee@linaro.org> --- diff --git a/target/arm/tcg/mte_helper.c b/target/arm/tcg/mte_helper.c index 037ac6dd60..a50d576294 100644 --- a/target/arm/tcg/mte_helper.c +++ b/target/arm/tcg/mte_helper.c @@ -96,6 +96,9 @@ static uint8_t *allocation_tag_mem_probe(CPUARMState *env, int ptr_mmu_idx, assert(!(probe && ra)); if (!(flags & (ptr_access == MMU_DATA_STORE ? PAGE_WRITE_ORG : PAGE_READ))) { + if (probe) { + return NULL; + } cpu_loop_exit_sigsegv(env_cpu(env), ptr, ptr_access, !(flags & PAGE_VALID), ra); }