[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 06/84] accel/tcg: Honor TLB_DISCARD_WRITE in atomic_mmu_lookup
From: |
Richard Henderson |
Subject: |
[PULL 06/84] accel/tcg: Honor TLB_DISCARD_WRITE in atomic_mmu_lookup |
Date: |
Sun, 5 Mar 2023 16:38:36 -0800 |
Using an atomic write or read-write insn on ROM is basically
a happens-never case. Handle it via stop-the-world, which
will generate non-atomic serial code, where we can correctly
ignore the write while producing the correct read result.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
accel/tcg/cputlb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c
index deafcc7f15..b49fb0d754 100644
--- a/accel/tcg/cputlb.c
+++ b/accel/tcg/cputlb.c
@@ -1831,7 +1831,7 @@ static void *atomic_mmu_lookup(CPUArchState *env,
target_ulong addr,
}
/* Notice an IO access or a needs-MMU-lookup access */
- if (unlikely(tlb_addr & TLB_MMIO)) {
+ if (unlikely(tlb_addr & (TLB_MMIO | TLB_DISCARD_WRITE))) {
/* There's really nothing that can be done to
support this apart from stop-the-world. */
goto stop_the_world;
--
2.34.1
- [PULL 00/84] tcg patch queue, Richard Henderson, 2023/03/05
- [PULL 01/84] tcg: Include "qemu/timer.h" for profile_getclock, Richard Henderson, 2023/03/05
- [PULL 02/84] tcg: Link branches to the labels, Richard Henderson, 2023/03/05
- [PULL 05/84] accel/tcg: Retain prot flags from tlb_fill, Richard Henderson, 2023/03/05
- [PULL 03/84] tcg: Merge two sequential labels, Richard Henderson, 2023/03/05
- [PULL 06/84] accel/tcg: Honor TLB_DISCARD_WRITE in atomic_mmu_lookup,
Richard Henderson <=
- [PULL 08/84] accel/tcg: Trigger watchpoints from atomic_mmu_lookup, Richard Henderson, 2023/03/05
- [PULL 18/84] target/arm: Drop DisasContext.tmp_a64, Richard Henderson, 2023/03/05
- [PULL 17/84] target/arm: Drop tcg_temp_free from translator.c, Richard Henderson, 2023/03/05
- [PULL 09/84] include/qemu/cpuid: Introduce xgetbv_low, Richard Henderson, 2023/03/05
- [PULL 16/84] target/arm: Remove value_global from DisasCompare, Richard Henderson, 2023/03/05
- [PULL 30/84] target/avr: Drop R from trans_COM, Richard Henderson, 2023/03/05
- [PULL 13/84] accel/tcg: Remove translator_loop_temp_check, Richard Henderson, 2023/03/05
- [PULL 04/84] target/sparc: Use tlb_set_page_full, Richard Henderson, 2023/03/05
- [PULL 07/84] softmmu: Check watchpoints for read+write at once, Richard Henderson, 2023/03/05
- [PULL 10/84] tcg/i386: Mark Win64 call-saved vector regs as reserved, Richard Henderson, 2023/03/05