|
@@ -3771,6 +3771,7 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
|
|
while (len > 0) {
|
|
while (len > 0) {
|
|
int asidx;
|
|
int asidx;
|
|
MemTxAttrs attrs;
|
|
MemTxAttrs attrs;
|
|
|
|
+ MemTxResult res;
|
|
|
|
|
|
page = addr & TARGET_PAGE_MASK;
|
|
page = addr & TARGET_PAGE_MASK;
|
|
phys_addr = cpu_get_phys_page_attrs_debug(cpu, page, &attrs);
|
|
phys_addr = cpu_get_phys_page_attrs_debug(cpu, page, &attrs);
|
|
@@ -3783,11 +3784,14 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
|
|
l = len;
|
|
l = len;
|
|
phys_addr += (addr & ~TARGET_PAGE_MASK);
|
|
phys_addr += (addr & ~TARGET_PAGE_MASK);
|
|
if (is_write) {
|
|
if (is_write) {
|
|
- address_space_write_rom(cpu->cpu_ases[asidx].as, phys_addr,
|
|
|
|
- attrs, buf, l);
|
|
|
|
|
|
+ res = address_space_write_rom(cpu->cpu_ases[asidx].as, phys_addr,
|
|
|
|
+ attrs, buf, l);
|
|
} else {
|
|
} else {
|
|
- address_space_read(cpu->cpu_ases[asidx].as, phys_addr, attrs, buf,
|
|
|
|
- l);
|
|
|
|
|
|
+ res = address_space_read(cpu->cpu_ases[asidx].as, phys_addr,
|
|
|
|
+ attrs, buf, l);
|
|
|
|
+ }
|
|
|
|
+ if (res != MEMTX_OK) {
|
|
|
|
+ return -1;
|
|
}
|
|
}
|
|
len -= l;
|
|
len -= l;
|
|
buf += l;
|
|
buf += l;
|