mirror of https://github.com/xemu-project/xemu.git
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);
|
qemu_bh_delete(s->cleanup_bh);
|
||||||
s->cleanup_bh = NULL;
|
s->cleanup_bh = NULL;
|
||||||
|
|
||||||
migration_page_queue_free();
|
|
||||||
|
|
||||||
if (s->to_dst_file) {
|
if (s->to_dst_file) {
|
||||||
trace_migrate_fd_cleanup();
|
trace_migrate_fd_cleanup();
|
||||||
qemu_mutex_unlock_iothread();
|
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.
|
* 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;
|
struct RAMSrcPageRequest *mspr, *next_mspr;
|
||||||
RAMState *rs = &ram_state;
|
|
||||||
/* This queue generally should be empty - but in the case of a failed
|
/* This queue generally should be empty - but in the case of a failed
|
||||||
* migration might have some droppings in.
|
* migration might have some droppings in.
|
||||||
*/
|
*/
|
||||||
|
@ -1437,6 +1436,7 @@ void free_xbzrle_decoded_buf(void)
|
||||||
|
|
||||||
static void ram_migration_cleanup(void *opaque)
|
static void ram_migration_cleanup(void *opaque)
|
||||||
{
|
{
|
||||||
|
RAMState *rs = opaque;
|
||||||
RAMBlock *block;
|
RAMBlock *block;
|
||||||
|
|
||||||
/* caller have hold iothread lock or is in a bh, so there is
|
/* 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.current_buf = NULL;
|
||||||
}
|
}
|
||||||
XBZRLE_cache_unlock();
|
XBZRLE_cache_unlock();
|
||||||
|
migration_page_queue_free(rs);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ram_state_reset(RAMState *rs)
|
static void ram_state_reset(RAMState *rs)
|
||||||
|
|
|
@ -53,7 +53,6 @@ void migrate_decompress_threads_create(void);
|
||||||
void migrate_decompress_threads_join(void);
|
void migrate_decompress_threads_join(void);
|
||||||
|
|
||||||
uint64_t ram_pagesize_summary(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);
|
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 acct_update_position(QEMUFile *f, size_t size, bool zero);
|
||||||
void free_xbzrle_decoded_buf(void);
|
void free_xbzrle_decoded_buf(void);
|
||||||
|
|
Loading…
Reference in New Issue