From: Li Zhijian Date: Tue, 4 Nov 2025 01:36:06 +0000 (+0800) Subject: migration: Fix transition to COLO state from precopy X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0b5bf4ea76205a93386c5e02fbb519871a62e677;p=thirdparty%2Fqemu.git migration: Fix transition to COLO state from precopy Commit 4881411136 ("migration: Always set DEVICE state") set a new DEVICE state before completed during migration, which broke the original transition to COLO. The migration flow for precopy has changed to: active -> pre-switchover -> device -> completed. This patch updates the transition state to ensure that the Pre-COLO state corresponds to DEVICE state correctly. Cc: qemu-stable Fixes: 4881411136 ("migration: Always set DEVICE state") Signed-off-by: Li Zhijian Reviewed-by: Zhang Chen Tested-by: Zhang Chen Link: https://lore.kernel.org/r/20251104013606.1937764-1-lizhijian@fujitsu.com Signed-off-by: Peter Xu --- diff --git a/migration/migration.c b/migration/migration.c index c2daab6bdd..1b2c02d7fa 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -3081,9 +3081,9 @@ static void migration_completion(MigrationState *s) goto fail; } - if (migrate_colo() && s->state == MIGRATION_STATUS_ACTIVE) { + if (migrate_colo() && s->state == MIGRATION_STATUS_DEVICE) { /* COLO does not support postcopy */ - migrate_set_state(&s->state, MIGRATION_STATUS_ACTIVE, + migrate_set_state(&s->state, MIGRATION_STATUS_DEVICE, MIGRATION_STATUS_COLO); } else { migration_completion_end(s);