ram: Call migration_page_queue_free() at ram_migration_cleanup()
We shouldn't be using memory later than that. Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
		
							parent
							
								
									338182c83c
								
							
						
					
					
						commit
						83c13382e4
					
				| 
						 | 
				
			
			@ -948,8 +948,6 @@ static void migrate_fd_cleanup(void *opaque)
 | 
			
		|||
    qemu_bh_delete(s->cleanup_bh);
 | 
			
		||||
    s->cleanup_bh = NULL;
 | 
			
		||||
 | 
			
		||||
    migration_page_queue_free();
 | 
			
		||||
 | 
			
		||||
    if (s->to_dst_file) {
 | 
			
		||||
        trace_migrate_fd_cleanup();
 | 
			
		||||
        qemu_mutex_unlock_iothread();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1184,10 +1184,9 @@ static bool get_queued_page(RAMState *rs, PageSearchStatus *pss)
 | 
			
		|||
 * be some left.  in case that there is any page left, we drop it.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
void migration_page_queue_free(void)
 | 
			
		||||
static void migration_page_queue_free(RAMState *rs)
 | 
			
		||||
{
 | 
			
		||||
    struct RAMSrcPageRequest *mspr, *next_mspr;
 | 
			
		||||
    RAMState *rs = &ram_state;
 | 
			
		||||
    /* This queue generally should be empty - but in the case of a failed
 | 
			
		||||
     * migration might have some droppings in.
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			@ -1437,6 +1436,7 @@ void free_xbzrle_decoded_buf(void)
 | 
			
		|||
 | 
			
		||||
static void ram_migration_cleanup(void *opaque)
 | 
			
		||||
{
 | 
			
		||||
    RAMState *rs = opaque;
 | 
			
		||||
    RAMBlock *block;
 | 
			
		||||
 | 
			
		||||
    /* caller have hold iothread lock or is in a bh, so there is
 | 
			
		||||
| 
						 | 
				
			
			@ -1462,6 +1462,7 @@ static void ram_migration_cleanup(void *opaque)
 | 
			
		|||
        XBZRLE.current_buf = NULL;
 | 
			
		||||
    }
 | 
			
		||||
    XBZRLE_cache_unlock();
 | 
			
		||||
    migration_page_queue_free(rs);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void ram_state_reset(RAMState *rs)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,7 +53,6 @@ void migrate_decompress_threads_create(void);
 | 
			
		|||
void migrate_decompress_threads_join(void);
 | 
			
		||||
 | 
			
		||||
uint64_t ram_pagesize_summary(void);
 | 
			
		||||
void migration_page_queue_free(void);
 | 
			
		||||
int ram_save_queue_pages(const char *rbname, ram_addr_t start, ram_addr_t len);
 | 
			
		||||
void acct_update_position(QEMUFile *f, size_t size, bool zero);
 | 
			
		||||
void free_xbzrle_decoded_buf(void);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue