diff --git a/qemu/exec.c b/qemu/exec.c index 81bf58a9..387f04e2 100644 --- a/qemu/exec.c +++ b/qemu/exec.c @@ -774,7 +774,11 @@ hwaddr memory_region_section_get_iotlb(CPUState *cpu, iotlb |= PHYS_SECTION_ROM; } } else { - iotlb = section - section->address_space->dispatch->map.sections; + AddressSpaceDispatch *d; + + // Unicorn: uses atomic_read instead of atomic_rcu_read + d = atomic_read(§ion->address_space->dispatch); + iotlb = section - d->map.sections; iotlb += xlat; }