Fix wrong dirty address tracking for MMIO accesses. Assert is only triggered for debug builds.
This commit is contained in:
parent
e42124c0c8
commit
bbd52db5f6
@ -1830,7 +1830,8 @@ static bool mmu_lookup(CPUState *cpu, vaddr addr, MemOpIdx oi,
|
||||
|
||||
//// --- Begin LibAFL code ---
|
||||
|
||||
if (type == MMU_DATA_STORE) {
|
||||
// TODO: check if the second condition solves faulty dirty address report
|
||||
if (type == MMU_DATA_STORE && !(flags & (TLB_INVALID_MASK | TLB_MMIO))) {
|
||||
syx_snapshot_dirty_list_add_hostaddr(l->page[0].haddr);
|
||||
}
|
||||
|
||||
|
@ -393,7 +393,9 @@ void syx_snapshot_dirty_list_add_hostaddr(void* host_addr) {
|
||||
ram_addr_t offset;
|
||||
RAMBlock* rb = qemu_ram_block_from_host((void*) host_addr, true, &offset);
|
||||
|
||||
#ifdef CONFIG_DEBUG_TCG
|
||||
assert(rb);
|
||||
#endif
|
||||
|
||||
hwaddr paddr = rb->mr->addr + offset;
|
||||
// If this assert is ever false, please understand why
|
||||
|
Loading…
x
Reference in New Issue
Block a user