qemu_ram_foreach_block: pass up error value, and down the ramblock name
check the return value of the function it calls and error if it's non-0 Fixup qemu_rdma_init_one_block that is the only current caller, and rdma_add_block the only function it calls using it. Pass the name of the ramblock to the function; helps in debugging. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Amit Shah <amit.shah@redhat.com> Reviewed-by: Michael R. Hines <mrhines@us.ibm.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
		
							parent
							
								
									f796baa1b3
								
							
						
					
					
						commit
						e3807054e2
					
				
							
								
								
									
										10
									
								
								exec.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								exec.c
									
									
									
									
									
								
							@ -3345,14 +3345,20 @@ bool cpu_physical_memory_is_io(hwaddr phys_addr)
 | 
				
			|||||||
    return res;
 | 
					    return res;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque)
 | 
					int qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    RAMBlock *block;
 | 
					    RAMBlock *block;
 | 
				
			||||||
 | 
					    int ret = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    rcu_read_lock();
 | 
					    rcu_read_lock();
 | 
				
			||||||
    QLIST_FOREACH_RCU(block, &ram_list.blocks, next) {
 | 
					    QLIST_FOREACH_RCU(block, &ram_list.blocks, next) {
 | 
				
			||||||
        func(block->host, block->offset, block->used_length, opaque);
 | 
					        ret = func(block->idstr, block->host, block->offset,
 | 
				
			||||||
 | 
					                   block->used_length, opaque);
 | 
				
			||||||
 | 
					        if (ret) {
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    rcu_read_unlock();
 | 
					    rcu_read_unlock();
 | 
				
			||||||
 | 
					    return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
				
			|||||||
@ -126,10 +126,10 @@ void cpu_flush_icache_range(hwaddr start, int len);
 | 
				
			|||||||
extern struct MemoryRegion io_mem_rom;
 | 
					extern struct MemoryRegion io_mem_rom;
 | 
				
			||||||
extern struct MemoryRegion io_mem_notdirty;
 | 
					extern struct MemoryRegion io_mem_notdirty;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef void (RAMBlockIterFunc)(void *host_addr,
 | 
					typedef int (RAMBlockIterFunc)(const char *block_name, void *host_addr,
 | 
				
			||||||
    ram_addr_t offset, ram_addr_t length, void *opaque);
 | 
					    ram_addr_t offset, ram_addr_t length, void *opaque);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque);
 | 
					int qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -570,10 +570,10 @@ static int rdma_add_block(RDMAContext *rdma, void *host_addr,
 | 
				
			|||||||
 * in advanced before the migration starts. This tells us where the RAM blocks
 | 
					 * in advanced before the migration starts. This tells us where the RAM blocks
 | 
				
			||||||
 * are so that we can register them individually.
 | 
					 * are so that we can register them individually.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static void qemu_rdma_init_one_block(void *host_addr,
 | 
					static int qemu_rdma_init_one_block(const char *block_name, void *host_addr,
 | 
				
			||||||
    ram_addr_t block_offset, ram_addr_t length, void *opaque)
 | 
					    ram_addr_t block_offset, ram_addr_t length, void *opaque)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    rdma_add_block(opaque, host_addr, block_offset, length);
 | 
					    return rdma_add_block(opaque, host_addr, block_offset, length);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user