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