exec: Propagate cpu_memory_rw_debug() error
Do not ignore the MemTxResult error type returned by the address_space_rw() API. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
				
					committed by
					
						
						Paolo Bonzini
					
				
			
			
				
	
			
			
			
						parent
						
							38df19fad7
						
					
				
				
					commit
					ddfc8b96ee
				
			
							
								
								
									
										10
									
								
								exec.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								exec.c
									
									
									
									
									
								
							@@ -3771,6 +3771,7 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
 | 
			
		||||
    while (len > 0) {
 | 
			
		||||
        int asidx;
 | 
			
		||||
        MemTxAttrs attrs;
 | 
			
		||||
        MemTxResult res;
 | 
			
		||||
 | 
			
		||||
        page = addr & TARGET_PAGE_MASK;
 | 
			
		||||
        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;
 | 
			
		||||
        phys_addr += (addr & ~TARGET_PAGE_MASK);
 | 
			
		||||
        if (is_write) {
 | 
			
		||||
            address_space_write_rom(cpu->cpu_ases[asidx].as, phys_addr,
 | 
			
		||||
            res = address_space_write_rom(cpu->cpu_ases[asidx].as, phys_addr,
 | 
			
		||||
                                          attrs, buf, l);
 | 
			
		||||
        } 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;
 | 
			
		||||
        buf += l;
 | 
			
		||||
 
 | 
			
		||||
@@ -413,6 +413,7 @@ void dump_exec_info(void);
 | 
			
		||||
void dump_opcount_info(void);
 | 
			
		||||
#endif /* !CONFIG_USER_ONLY */
 | 
			
		||||
 | 
			
		||||
/* Returns: 0 on success, -1 on error */
 | 
			
		||||
int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
 | 
			
		||||
                        void *ptr, target_ulong len, bool is_write);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user