summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system/cpus.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/system/cpus.c b/system/cpus.c
index 49f6daec3c..b31c825b46 100644
--- a/system/cpus.c
+++ b/system/cpus.c
@@ -43,6 +43,7 @@
#include "system/physmem.h"
#include "system/replay.h"
#include "system/runstate.h"
+#include "migration/misc.h"
#include "system/cpu-timers.h"
#include "system/whpx.h"
#include "hw/core/boards.h"
@@ -843,6 +844,11 @@ void qmp_memsave(uint64_t addr, uint64_t size, const char *filename,
uint8_t buf[1024];
uint64_t orig_addr = addr, orig_size = size;
+ if (migration_guest_ram_loading()) {
+ error_setg(errp, "Guest memory access not allowed during migration");
+ return;
+ }
+
if (!has_cpu) {
cpu_index = 0;
}
@@ -889,6 +895,11 @@ void qmp_pmemsave(uint64_t addr, uint64_t size, const char *filename,
uint64_t l;
uint8_t buf[1024];
+ if (migration_guest_ram_loading()) {
+ error_setg(errp, "Guest memory access not allowed during migration");
+ return;
+ }
+
f = fopen(filename, "wb");
if (!f) {
error_setg_file_open(errp, errno, filename);