While the CONFIG_USER_ONLY variant can handle multiple pages (no MMU), the !CONFIG_USER_ONLY variant can't and won't. We'll want to convert probe_write() to return a host address (similar to tlb_vaddr_to_host()) soon. This only works on page granularity.
Signed-off-by: David Hildenbrand <da...@redhat.com> --- accel/tcg/cputlb.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index bb9897b25a..4b49ccb58a 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -1064,6 +1064,8 @@ void probe_write(CPUArchState *env, target_ulong addr, int size, int mmu_idx, uintptr_t index = tlb_index(env, mmu_idx, addr); CPUTLBEntry *entry = tlb_entry(env, mmu_idx, addr); + g_assert(-(addr | TARGET_PAGE_MASK) >= size); + if (!tlb_hit(tlb_addr_write(entry), addr)) { /* TLB entry is for a different page */ if (!VICTIM_TLB_HIT(addr_write, addr)) { -- 2.21.0