diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2015-08-03 17:33:35 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2015-08-03 17:33:35 +0100 |
commit | e95edefbd0559e1d0aa09549641b5d9af1f96fac (patch) | |
tree | 88dcd36e5ae08283a170ee8bf9394932c94a5871 | |
parent | f60c87154ac722c528fd5582f7137914a93c5eec (diff) | |
parent | 8c6dc68f4cff9eef870497a19a5373dde9dbdcc2 (diff) |
Merge remote-tracking branch 'remotes/sstabellini/tags/xen-migration-2.4-tag' into staging
xen-migration-2.4
# gpg: Signature made Mon 03 Aug 2015 17:18:36 BST using RSA key ID 70E1AE90
# gpg: Good signature from "Stefano Stabellini <stefano.stabellini@eu.citrix.com>"
* remotes/sstabellini/tags/xen-migration-2.4-tag:
migration: Fix regression for xenfv and pc,accel=xen machine.
migration: Fix global state with Xen.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r-- | include/migration/migration.h | 1 | ||||
-rw-r--r-- | migration/migration.c | 7 | ||||
-rw-r--r-- | migration/savevm.c | 1 | ||||
-rw-r--r-- | xen-common.c | 5 |
4 files changed, 14 insertions, 0 deletions
diff --git a/include/migration/migration.h b/include/migration/migration.h index a2f8ed093c..83346210b1 100644 --- a/include/migration/migration.h +++ b/include/migration/migration.h @@ -203,4 +203,5 @@ void register_global_state(void); void global_state_set_optional(void); void savevm_skip_configuration(void); int global_state_store(void); +void global_state_store_running(void); #endif diff --git a/migration/migration.c b/migration/migration.c index fd4f99b84e..662e77e4eb 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -122,6 +122,13 @@ int global_state_store(void) return 0; } +void global_state_store_running(void) +{ + const char *state = RunState_lookup[RUN_STATE_RUNNING]; + strncpy((char *)global_state.runstate, + state, sizeof(global_state.runstate)); +} + static bool global_state_received(void) { return global_state.received; diff --git a/migration/savevm.c b/migration/savevm.c index 81dbe5879f..60712153fa 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1394,6 +1394,7 @@ void qmp_xen_save_devices_state(const char *filename, Error **errp) saved_vm_running = runstate_is_running(); vm_stop(RUN_STATE_SAVE_VM); + global_state_store_running(); f = qemu_fopen(filename, "wb"); if (!f) { diff --git a/xen-common.c b/xen-common.c index 56359ca725..0dcdbc39f4 100644 --- a/xen-common.c +++ b/xen-common.c @@ -12,6 +12,7 @@ #include "qmp-commands.h" #include "sysemu/char.h" #include "sysemu/accel.h" +#include "migration/migration.h" //#define DEBUG_XEN @@ -119,6 +120,10 @@ static int xen_init(MachineState *ms) } qemu_add_vm_change_state_handler(xen_change_state_handler, NULL); + global_state_set_optional(); + savevm_skip_configuration(); + savevm_skip_section_footers(); + return 0; } |