diff options
author | Halil Pasic <pasic@linux.vnet.ibm.com> | 2017-02-03 18:52:17 +0100 |
---|---|---|
committer | Dr. David Alan Gilbert <dgilbert@redhat.com> | 2017-02-13 17:27:13 +0000 |
commit | 59046ec29ad4c24391bb9fe1fbdced33557aaa70 (patch) | |
tree | a3f0ec57065500119bc1d2f1a3cd195728dcfcb2 /migration | |
parent | 0827b9e97d443781a17a21c64695940675aa1f8a (diff) | |
download | qemu-59046ec29ad4c24391bb9fe1fbdced33557aaa70.zip qemu-59046ec29ad4c24391bb9fe1fbdced33557aaa70.tar.gz qemu-59046ec29ad4c24391bb9fe1fbdced33557aaa70.tar.bz2 |
migration: consolidate VMStateField.start
The member VMStateField.start is used for two things, partial data
migration for VBUFFER data (basically provide migration for a
sub-buffer) and for locating next in QTAILQ.
The implementation of the VBUFFER feature is broken when VMSTATE_ALLOC
is used. This however goes unnoticed because actually partial migration
for VBUFFER is not used at all.
Let's consolidate the usage of VMStateField.start by removing support
for partial migration for VBUFFER.
Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>
Message-Id: <20170203175217.45562-1-pasic@linux.vnet.ibm.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Diffstat (limited to 'migration')
-rw-r--r-- | migration/savevm.c | 2 | ||||
-rw-r--r-- | migration/vmstate.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/migration/savevm.c b/migration/savevm.c index 0199768..5ecd264 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -356,7 +356,7 @@ static const VMStateDescription vmstate_configuration = { .pre_save = configuration_pre_save, .fields = (VMStateField[]) { VMSTATE_UINT32(len, SaveState), - VMSTATE_VBUFFER_ALLOC_UINT32(name, SaveState, 0, NULL, 0, len), + VMSTATE_VBUFFER_ALLOC_UINT32(name, SaveState, 0, NULL, len), VMSTATE_END_OF_LIST() }, .subsections = (const VMStateDescription*[]) { diff --git a/migration/vmstate.c b/migration/vmstate.c index 2b2b3a5..520341a 100644 --- a/migration/vmstate.c +++ b/migration/vmstate.c @@ -68,10 +68,10 @@ static void *vmstate_base_addr(void *opaque, VMStateField *field, bool alloc) } } if (size) { - *((void **)base_addr + field->start) = g_malloc(size); + *(void **)base_addr = g_malloc(size); } } - base_addr = *(void **)base_addr + field->start; + base_addr = *(void **)base_addr; } return base_addr; |