From e189e1fb8b82a90509cb300ef483aa6a86eb30aa Mon Sep 17 00:00:00 2001 From: Mark Giraud Date: Wed, 23 Aug 2023 10:18:42 +0200 Subject: [PATCH] fix: Use correct addresses during memory cow --- qemu/accel/tcg/cputlb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qemu/accel/tcg/cputlb.c b/qemu/accel/tcg/cputlb.c index c120d27b..138fc25c 100644 --- a/qemu/accel/tcg/cputlb.c +++ b/qemu/accel/tcg/cputlb.c @@ -2156,7 +2156,7 @@ store_helper(CPUArchState *env, target_ulong addr, uint64_t val, } if (uc->snapshot_level && mr->ram && mr->priority < uc->snapshot_level) { - mr = memory_cow(uc, mr, addr & TARGET_PAGE_MASK, TARGET_PAGE_SIZE); + mr = memory_cow(uc, mr, paddr & TARGET_PAGE_MASK, TARGET_PAGE_SIZE); if (!mr) { uc->invalid_addr = paddr; uc->invalid_error = UC_ERR_NOMEM; @@ -2164,7 +2164,7 @@ store_helper(CPUArchState *env, target_ulong addr, uint64_t val, return; } /* refill tlb after CoW */ - tlb_fill(env_cpu(env), paddr, size, MMU_DATA_STORE, + tlb_fill(env_cpu(env), addr, size, MMU_DATA_STORE, mmu_idx, retaddr); index = tlb_index(env, mmu_idx, addr); entry = tlb_entry(env, mmu_idx, addr);