aboutsummaryrefslogtreecommitdiff
path: root/migration/savevm.c
diff options
context:
space:
mode:
authorDr. David Alan Gilbert <dgilbert@redhat.com>2017-02-02 15:59:08 +0000
committerJuan Quintela <quintela@redhat.com>2017-02-06 13:36:49 +0100
commit328d4d85282e7d62f89f5b0547a493d9cd07cea0 (patch)
tree075da3f04d940b81f5064befb2ca3026c4368a08 /migration/savevm.c
parent67980031d234aa90524b83bb80bb5d1601d29076 (diff)
Postcopy: Reset state to avoid cleanup assert
On a destination host with no userfault support an incoming postcopy would cause the state to enter ADVISE before it realised there was no support, and because it was in ADVISE state it would perform a cleanup at the end. Since there was no support the cleanup function should be unreachable, but ends up being called and asserting. Reset the state when we realise we have no support, thus the cleanup doesn't happen. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20170202155909.31784-2-dgilbert@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration/savevm.c')
-rw-r--r--migration/savevm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/migration/savevm.c b/migration/savevm.c
index 8b8c74dc86..01997687c4 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -1355,6 +1355,7 @@ static int loadvm_postcopy_handle_advise(MigrationIncomingState *mis)
}
if (!postcopy_ram_supported_by_host()) {
+ postcopy_state_set(POSTCOPY_INCOMING_NONE);
return -1;
}