aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2015-08-03 17:33:35 +0100
committerPeter Maydell <peter.maydell@linaro.org>2015-08-03 17:33:35 +0100
commite95edefbd0559e1d0aa09549641b5d9af1f96fac (patch)
tree88dcd36e5ae08283a170ee8bf9394932c94a5871
parentf60c87154ac722c528fd5582f7137914a93c5eec (diff)
parent8c6dc68f4cff9eef870497a19a5373dde9dbdcc2 (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.h1
-rw-r--r--migration/migration.c7
-rw-r--r--migration/savevm.c1
-rw-r--r--xen-common.c5
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;
}