Skip to content
Snippets Groups Projects
Commit c082082c authored by Alex Williamson's avatar Alex Williamson Committed by Luiz Capitulino
Browse files

savevm: Reset last block info at beginning of each save


If we save more than once we need to reset the last block info or else
only the first save has the actual block info and each subsequent save
will only use continue flags, making them unloadable independently.

Found-by: default avatarMiguel Di Ciurcio Filho <miguel.filho@gmail.com>
Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
Acked-by: default avatarGlauber Costa <glommer@redhat.com>
Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
(cherry picked from commit 760e77ea)
parent c4127fbf
No related branches found
No related tags found
No related merge requests found
......@@ -104,10 +104,11 @@ static int is_dup_page(uint8_t *page, uint8_t ch)
return 1;
}
static RAMBlock *last_block;
static ram_addr_t last_offset;
static int ram_save_block(QEMUFile *f)
{
static RAMBlock *last_block = NULL;
static ram_addr_t last_offset = 0;
RAMBlock *block = last_block;
ram_addr_t offset = last_offset;
ram_addr_t current_addr;
......@@ -231,6 +232,8 @@ int ram_save_live(Monitor *mon, QEMUFile *f, int stage, void *opaque)
if (stage == 1) {
RAMBlock *block;
bytes_transferred = 0;
last_block = NULL;
last_offset = 0;
/* Make sure all dirty bits are set */
QLIST_FOREACH(block, &ram_list.blocks, next) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment