COLO do not support qdev hotplug migration, disable it. Signed-off-by: Yang Hongyang <yan...@cn.fujitsu.com> --- migration-colo.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/migration-colo.c b/migration-colo.c index 391e0b7..1e6cd70 100644 --- a/migration-colo.c +++ b/migration-colo.c @@ -11,6 +11,7 @@ #include "qemu/main-loop.h" #include "qemu/thread.h" #include "block/coroutine.h" +#include "hw/qdev-core.h" #include "migration/migration-colo.h" static QEMUBH *colo_bh; @@ -25,6 +26,9 @@ bool colo_supported(void) static void *colo_thread(void *opaque) { MigrationState *s = opaque; + int dev_hotplug = qdev_hotplug; + + qdev_hotplug = 0; /*TODO: COLO checkpointed save loop*/ @@ -34,6 +38,8 @@ static void *colo_thread(void *opaque) qemu_bh_schedule(s->cleanup_bh); qemu_mutex_unlock_iothread(); + qdev_hotplug = dev_hotplug; + return NULL; } @@ -68,10 +74,14 @@ static Coroutine *colo; void colo_process_incoming_checkpoints(QEMUFile *f) { + int dev_hotplug = qdev_hotplug; + if (!restore_use_colo()) { return; } + qdev_hotplug = 0; + colo = qemu_coroutine_self(); assert(colo != NULL); @@ -80,5 +90,7 @@ void colo_process_incoming_checkpoints(QEMUFile *f) colo = NULL; restore_exit_colo(); + qdev_hotplug = dev_hotplug; + return; } -- 1.9.1