From: Peter Maydell Date: Tue, 20 Apr 2021 12:31:06 +0000 (+0100) Subject: target/arm: Fix tlbbits calculation in tlbi_aa64_vae2is_write() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=eb849d8fd542329b299be5a894d7e272eed16a49;p=qemu.git target/arm: Fix tlbbits calculation in tlbi_aa64_vae2is_write() In tlbi_aa64_vae2is_write() the calculation bits = tlbbits_for_regime(env, secure ? ARMMMUIdx_E2 : ARMMMUIdx_SE2, pageaddr) has the two arms of the ?: expression reversed. Fix the bug. Fixes: b6ad6062f1e5 Reported-by: Rebecca Cran Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Rémi Denis-Courmont Reviewed-by: Rebecca Cran Message-id: 20210420123106.10861-1-peter.maydell@linaro.org --- diff --git a/target/arm/helper.c b/target/arm/helper.c index 9b1b98705f..3b365a78cb 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -4742,7 +4742,7 @@ static void tlbi_aa64_vae2is_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t pageaddr = sextract64(value << 12, 0, 56); bool secure = arm_is_secure_below_el3(env); int mask = secure ? ARMMMUIdxBit_SE2 : ARMMMUIdxBit_E2; - int bits = tlbbits_for_regime(env, secure ? ARMMMUIdx_E2 : ARMMMUIdx_SE2, + int bits = tlbbits_for_regime(env, secure ? ARMMMUIdx_SE2 : ARMMMUIdx_E2, pageaddr); tlb_flush_page_bits_by_mmuidx_all_cpus_synced(cs, pageaddr, mask, bits);