From: Peter Xu Date: Wed, 14 Jan 2026 15:37:50 +0000 (-0500) Subject: tests/migration-test: Remove postcopy_data from MigrateCommon X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=86571f512136ad4c408c795f0de59ccf1abb9dfd;p=thirdparty%2Fqemu.git tests/migration-test: Remove postcopy_data from MigrateCommon Now postcopy is not the only user of start_hook / end_hook that will pass in a opaque pointer. It doesn't need to be defined in MigrateCommon as part of the framework, as all other hook users can pass hook_data around. Do it too for postcopy. Reviewed-by: Prasad Pandit Signed-off-by: Peter Xu Link: https://lore.kernel.org/qemu-devel/20260114153751.2427172-2-peterx@redhat.com Signed-off-by: Fabiano Rosas --- diff --git a/tests/qtest/migration/framework.c b/tests/qtest/migration/framework.c index 57d3b9b7c5..78bd3ec31a 100644 --- a/tests/qtest/migration/framework.c +++ b/tests/qtest/migration/framework.c @@ -541,6 +541,7 @@ void migrate_end(QTestState *from, QTestState *to, bool test_dest) static int migrate_postcopy_prepare(QTestState **from_ptr, QTestState **to_ptr, + void **hook_data, MigrateCommon *args) { QTestState *from, *to; @@ -554,7 +555,7 @@ static int migrate_postcopy_prepare(QTestState **from_ptr, } if (args->start_hook) { - args->postcopy_data = args->start_hook(from, to); + *hook_data = args->start_hook(from, to); } migrate_ensure_non_converge(from); @@ -582,7 +583,7 @@ static int migrate_postcopy_prepare(QTestState **from_ptr, } static void migrate_postcopy_complete(QTestState *from, QTestState *to, - MigrateCommon *args) + void *hook_data, MigrateCommon *args) { MigrationTestEnv *env = migration_get_env(); @@ -601,8 +602,7 @@ static void migrate_postcopy_complete(QTestState *from, QTestState *to, } if (args->end_hook) { - args->end_hook(from, to, args->postcopy_data); - args->postcopy_data = NULL; + args->end_hook(from, to, hook_data); } migrate_end(from, to, true); @@ -610,13 +610,14 @@ static void migrate_postcopy_complete(QTestState *from, QTestState *to, void test_postcopy_common(MigrateCommon *args) { + void *hook_data = NULL; QTestState *from, *to; - if (migrate_postcopy_prepare(&from, &to, args)) { + if (migrate_postcopy_prepare(&from, &to, &hook_data, args)) { return; } migrate_postcopy_start(from, to, &src_state); - migrate_postcopy_complete(from, to, args); + migrate_postcopy_complete(from, to, hook_data, args); } static void wait_for_postcopy_status(QTestState *one, const char *status) @@ -742,6 +743,7 @@ void test_postcopy_recovery_common(MigrateCommon *args) { QTestState *from, *to; g_autofree char *uri = NULL; + void *hook_data = NULL; /* * Always enable OOB QMP capability for recovery tests, migrate-recover is @@ -752,7 +754,7 @@ void test_postcopy_recovery_common(MigrateCommon *args) /* Always hide errors for postcopy recover tests since they're expected */ args->start.hide_stderr = true; - if (migrate_postcopy_prepare(&from, &to, args)) { + if (migrate_postcopy_prepare(&from, &to, &hook_data, args)) { return; } @@ -808,7 +810,7 @@ void test_postcopy_recovery_common(MigrateCommon *args) /* Restore the postcopy bandwidth to unlimited */ migrate_set_parameter_int(from, "max-postcopy-bandwidth", 0); - migrate_postcopy_complete(from, to, args); + migrate_postcopy_complete(from, to, hook_data, args); } int test_precopy_common(MigrateCommon *args) diff --git a/tests/qtest/migration/framework.h b/tests/qtest/migration/framework.h index 2ef0f57962..c180cc3e46 100644 --- a/tests/qtest/migration/framework.h +++ b/tests/qtest/migration/framework.h @@ -231,7 +231,6 @@ typedef struct { bool live; /* Postcopy specific fields */ - void *postcopy_data; PostcopyRecoveryFailStage postcopy_recovery_fail_stage; } MigrateCommon;