On 9/15/26 21:32, Anton Blanchard wrote:
Update tlb_plugin_lookup() to check TLB_MMIO in slow_flags when
TLB_FORCE_SLOW is set.

Signed-off-by: Anton Blanchard <[email protected]>
---
  accel/tcg/cputlb.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c
index 7f7c208ba1..7150d6d126 100644
--- a/accel/tcg/cputlb.c
+++ b/accel/tcg/cputlb.c
@@ -1593,7 +1593,8 @@ bool tlb_plugin_lookup(CPUState *cpu, vaddr addr, int 
mmu_idx,
      data->phys_addr = full->phys_addr | (addr & ~TARGET_PAGE_MASK);
/* We must have an iotlb entry for MMIO */
-    if (tlb_addr & TLB_MMIO) {
+    if ((tlb_addr & TLB_FORCE_SLOW) &&
+        (full->slow_flags[access_type] & TLB_MMIO)) {
          MemoryRegionSection *section = full->section;
          data->is_io = true;
          data->mr = section->mr;

Mm.  Missed when doing the conversion.

You don't actually need to test vs FORCE_SLOW; that's just there for the fast path to notice. Just test slow_flags unconditionally.


r~

Reply via email to