From 71dd4c1a5672cafe9fb89abc83fe2a962f39ec42 Mon Sep 17 00:00:00 2001 From: Peter Xu Date: Tue, 27 Jun 2017 12:10:16 +0800 Subject: migration: move skip_configuration out It was in SaveState but now moved to MigrationState altogether, reverted its meaning, then renamed to "send_configuration". Again, using HW_COMPAT_2_3 for old PC/SPAPR machines, and accel_register_prop() for xen_init(). Removing savevm_skip_configuration(). Reviewed-by: Juan Quintela Signed-off-by: Peter Xu Message-Id: <1498536619-14548-8-git-send-email-peterx@redhat.com> Signed-off-by: Juan Quintela --- migration/migration.c | 2 ++ migration/migration.h | 3 +++ migration/savevm.c | 15 ++++----------- 3 files changed, 9 insertions(+), 11 deletions(-) (limited to 'migration') diff --git a/migration/migration.c b/migration/migration.c index 67f9e68f2e..414e14db6c 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1985,6 +1985,8 @@ static Property migration_properties[] = { DEFINE_PROP_BOOL("store-global-state", MigrationState, store_global_state, true), DEFINE_PROP_BOOL("only-migratable", MigrationState, only_migratable, false), + DEFINE_PROP_BOOL("send-configuration", MigrationState, + send_configuration, true), DEFINE_PROP_END_OF_LIST(), }; diff --git a/migration/migration.h b/migration/migration.h index 34377dd1db..4d4ea0debf 100644 --- a/migration/migration.h +++ b/migration/migration.h @@ -142,6 +142,9 @@ struct MigrationState /* Whether the VM is only allowing for migratable devices */ bool only_migratable; + + /* Whether we send QEMU_VM_CONFIGURATION during migration */ + bool send_configuration; }; void migrate_set_state(int *state, int old_state, int new_state); diff --git a/migration/savevm.c b/migration/savevm.c index 1499cd3f22..0a8c61f52f 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -287,7 +287,6 @@ typedef struct SaveStateEntry { typedef struct SaveState { QTAILQ_HEAD(, SaveStateEntry) handlers; int global_section_id; - bool skip_configuration; uint32_t len; const char *name; uint32_t target_page_bits; @@ -296,15 +295,8 @@ typedef struct SaveState { static SaveState savevm_state = { .handlers = QTAILQ_HEAD_INITIALIZER(savevm_state.handlers), .global_section_id = 0, - .skip_configuration = false, }; -void savevm_skip_configuration(void) -{ - savevm_state.skip_configuration = true; -} - - static void configuration_pre_save(void *opaque) { SaveState *state = opaque; @@ -970,11 +962,11 @@ void qemu_savevm_state_header(QEMUFile *f) qemu_put_be32(f, QEMU_VM_FILE_MAGIC); qemu_put_be32(f, QEMU_VM_FILE_VERSION); - if (!savevm_state.skip_configuration || enforce_config_section()) { + if (migrate_get_current()->send_configuration || + enforce_config_section()) { qemu_put_byte(f, QEMU_VM_CONFIGURATION); vmstate_save_state(f, &vmstate_configuration, &savevm_state, 0); } - } void qemu_savevm_state_begin(QEMUFile *f) @@ -1995,7 +1987,8 @@ int qemu_loadvm_state(QEMUFile *f) return -ENOTSUP; } - if (!savevm_state.skip_configuration || enforce_config_section()) { + if (migrate_get_current()->send_configuration || + enforce_config_section()) { if (qemu_get_byte(f) != QEMU_VM_CONFIGURATION) { error_report("Configuration section missing"); return -EINVAL; -- cgit v1.2.3-55-g7522