COLO do not support qdev hotplug migration, disable it.

Signed-off-by: zhanghailiang <zhang.zhanghaili...@huawei.com>
Signed-off-by: Yang Hongyang <yan...@cn.fujitsu.com>
---
 migration/colo.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/migration/colo.c b/migration/colo.c
index ab9dcfe..8740fc2 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -10,6 +10,7 @@
  * later.  See the COPYING file in the top-level directory.
  */
 
+#include "hw/qdev-core.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
 #include "migration/migration-colo.h"
@@ -318,6 +319,7 @@ out:
 static void *colo_thread(void *opaque)
 {
     MigrationState *s = opaque;
+    int dev_hotplug = qdev_hotplug;
     QEMUFile *colo_control = NULL;
     int64_t current_time, checkpoint_time = qemu_clock_get_ms(QEMU_CLOCK_HOST);
     int ret;
@@ -333,6 +335,8 @@ static void *colo_thread(void *opaque)
         goto out;
     }
 
+    qdev_hotplug = 0;
+
     /*
      * Wait for slave finish loading vm states and enter COLO
      * restore.
@@ -420,6 +424,8 @@ out:
     qemu_bh_schedule(s->cleanup_bh);
     qemu_mutex_unlock_iothread();
 
+    qdev_hotplug = dev_hotplug;
+
     return NULL;
 }
 
@@ -482,10 +488,13 @@ void *colo_process_incoming_checkpoints(void *opaque)
     struct colo_incoming *colo_in = opaque;
     QEMUFile *f = colo_in->file;
     int fd = qemu_get_fd(f);
+    int dev_hotplug = qdev_hotplug;
     QEMUFile *ctl = NULL, *fb = NULL;
     int ret;
     uint64_t total_size;
 
+    qdev_hotplug = 0;
+
     colo = qemu_coroutine_self();
     assert(colo != NULL);
 
@@ -658,5 +667,7 @@ out:
 
     loadvm_exit_colo();
 
+    qdev_hotplug = dev_hotplug;
+
     return NULL;
 }
-- 
1.7.12.4



Reply via email to