From 0b5bf4ea76205a93386c5e02fbb519871a62e677 Mon Sep 17 00:00:00 2001 From: Li Zhijian Date: Tue, 4 Nov 2025 09:36:06 +0800 Subject: [PATCH] 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 --- migration/migration.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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); -- 2.47.3