diff --git a/migration/migration.c b/migration/migration.c index 96c641283bca905f2112f2ee3ff31830d6579c07..e7e6cf386f7ff8c595a6cf334c9d945a2d567079 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -42,6 +42,7 @@ #include "exec/target_page.h" #include "io/channel-buffer.h" #include "migration/colo.h" +#include "hw/boards.h" #define MAX_THROTTLE (32 << 20) /* Migration transfer speed throttling */ @@ -102,9 +103,20 @@ static MigrationState *current_migration; void migration_object_init(void) { + MachineState *ms = MACHINE(qdev_get_machine()); + /* This can only be called once. */ assert(!current_migration); current_migration = MIGRATION_OBJ(object_new(TYPE_MIGRATION)); + + /* + * We cannot really do this in migration_instance_init() since at + * that time global properties are not yet applied, then this + * value will be definitely replaced by something else. + */ + if (ms->enforce_config_section) { + current_migration->send_configuration = true; + } } /* For outgoing */ diff --git a/migration/savevm.c b/migration/savevm.c index 7b39fb9a81aafb279e66e704cca7024f1a5eb961..be3f88511914e0e03636eb067dc88537cea9810e 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -943,20 +943,13 @@ bool qemu_savevm_state_blocked(Error **errp) return false; } -static bool enforce_config_section(void) -{ - MachineState *machine = MACHINE(qdev_get_machine()); - return machine->enforce_config_section; -} - void qemu_savevm_state_header(QEMUFile *f) { trace_savevm_state_header(); qemu_put_be32(f, QEMU_VM_FILE_MAGIC); qemu_put_be32(f, QEMU_VM_FILE_VERSION); - if (migrate_get_current()->send_configuration || - enforce_config_section()) { + if (migrate_get_current()->send_configuration) { qemu_put_byte(f, QEMU_VM_CONFIGURATION); vmstate_save_state(f, &vmstate_configuration, &savevm_state, 0); } @@ -1980,8 +1973,7 @@ int qemu_loadvm_state(QEMUFile *f) return -ENOTSUP; } - if (migrate_get_current()->send_configuration || - enforce_config_section()) { + if (migrate_get_current()->send_configuration) { if (qemu_get_byte(f) != QEMU_VM_CONFIGURATION) { error_report("Configuration section missing"); return -EINVAL;