migration: Take reference to migration state around bg_migration_vm_start_bh

We need to hold a reference to the current_migration object around
async calls to avoid it been freed while still in use.

Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240119233922.32588-3-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
Fabiano Rosas 2024-01-19 20:39:19 -03:00 committed by Peter Xu
parent 27eb8499ed
commit 59094cfa7a

View File

@ -3382,6 +3382,7 @@ static void bg_migration_vm_start_bh(void *opaque)
vm_resume(s->vm_old_state);
migration_downtime_end(s);
object_unref(OBJECT(s));
}
/**
@ -3486,6 +3487,7 @@ static void *bg_migration_thread(void *opaque)
* writes to virtio VQs memory which is in write-protected region.
*/
s->vm_start_bh = qemu_bh_new(bg_migration_vm_start_bh, s);
object_ref(OBJECT(s));
qemu_bh_schedule(s->vm_start_bh);
bql_unlock();