[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 08/24] target/arm: Restrict tlb flush from vttbr_write to vmid cha
From: |
Peter Maydell |
Subject: |
[PULL 08/24] target/arm: Restrict tlb flush from vttbr_write to vmid change |
Date: |
Thu, 20 Oct 2022 13:21:30 +0100 |
From: Richard Henderson <richard.henderson@linaro.org>
Compare only the VMID field when considering whether we need to flush.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20221011031911.2408754-7-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
target/arm/helper.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/target/arm/helper.c b/target/arm/helper.c
index 18c51bb7774..c672903f432 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -3815,10 +3815,10 @@ static void vttbr_write(CPUARMState *env, const
ARMCPRegInfo *ri,
* A change in VMID to the stage2 page table (Stage2) invalidates
* the stage2 and combined stage 1&2 tlbs (EL10_1 and EL10_0).
*/
- if (raw_read(env, ri) != value) {
+ if (extract64(raw_read(env, ri) ^ value, 48, 16) != 0) {
tlb_flush_by_mmuidx(cs, alle1_tlbmask(env));
- raw_write(env, ri, value);
}
+ raw_write(env, ri, value);
}
static const ARMCPRegInfo vmsa_pmsa_cp_reginfo[] = {
--
2.25.1
- [PULL 10/24] target/arm: Plumb debug into S1Translate, (continued)
- [PULL 10/24] target/arm: Plumb debug into S1Translate, Peter Maydell, 2022/10/20
- [PULL 15/24] target/arm: Introduce curr_insn_len, Peter Maydell, 2022/10/20
- [PULL 17/24] target/arm: Change gen_*set_pc_im to gen_*update_pc, Peter Maydell, 2022/10/20
- [PULL 04/24] target/arm: Use probe_access_full for MTE, Peter Maydell, 2022/10/20
- [PULL 19/24] target/arm: Remove gen_exception_internal_insn pc argument, Peter Maydell, 2022/10/20
- [PULL 20/24] target/arm: Change gen_jmp* to work on displacements, Peter Maydell, 2022/10/20
- [PULL 22/24] target/arm: Introduce gen_pc_plus_diff for aarch32, Peter Maydell, 2022/10/20
- [PULL 16/24] target/arm: Change gen_goto_tb to work on displacements, Peter Maydell, 2022/10/20
- [PULL 18/24] target/arm: Change gen_exception_insn* to work on displacements, Peter Maydell, 2022/10/20
- [PULL 24/24] hw/ide/microdrive: Use device_cold_reset() for self-resets, Peter Maydell, 2022/10/20
- [PULL 08/24] target/arm: Restrict tlb flush from vttbr_write to vmid change,
Peter Maydell <=
- [PULL 12/24] target/arm: Use softmmu tlbs for page table walking, Peter Maydell, 2022/10/20
- [PULL 13/24] target/arm: Split out get_phys_addr_twostage, Peter Maydell, 2022/10/20
- [PULL 14/24] target/arm: Use bool consistently for get_phys_addr subroutines, Peter Maydell, 2022/10/20
- [PULL 21/24] target/arm: Introduce gen_pc_plus_diff for aarch64, Peter Maydell, 2022/10/20
- Re: [PULL 00/24] target-arm queue, Stefan Hajnoczi, 2022/10/20