qemu_savevm_state_complete_precopy() requires that BQL is held.

This fixes a crash when running with TCG accel.

Signed-off-by: Lukas Straub <[email protected]>
---
 migration/colo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/migration/colo.c b/migration/colo.c
index 
afab8eeb14d09c1db9b235121c5845b11a80deba..74338a59b563846f4562161942001889dd6191bc
 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -457,9 +457,8 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
 
     /* Note: device state is saved into buffer */
     ret = qemu_save_device_state(fb);
-
-    bql_unlock();
     if (ret < 0) {
+        bql_unlock();
         goto out;
     }
 
@@ -472,6 +471,7 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
      * to be blocked here.
      */
     qemu_savevm_live_state(s->to_dst_file);
+    bql_unlock();
 
     qemu_fflush(fb);
 

-- 
2.39.5


Reply via email to