qemu_savevm_state_complete_precopy() requires that BQL is held.
This fixes a crash when running with TCG accel.
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Lukas Straub <lukasstraub2@web.de>
---
migration/colo.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/migration/colo.c b/migration/colo.c
index dc7cfa81ef7db78e3ee372642de48567c5bc06eb..3297aa593cd9f87bf1013598464cc581a9d23531 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -455,9 +455,8 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
/* Note: device state is saved into buffer */
ret = qemu_save_device_state(fb, &local_err);
-
- bql_unlock();
if (ret < 0) {
+ bql_unlock();
goto out;
}
@@ -471,6 +470,7 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
*/
qemu_savevm_state_complete_precopy_iterable(s->to_dst_file, false);
qemu_savevm_state_end(s->to_dst_file);
+ bql_unlock();
/*
* We need the size of the VMstate data in Secondary side,
--
2.39.5