Andreas Färber <afaer...@suse.de> wrote:
> Am 13.03.2012 07:05, schrieb Amos Kong:
>> VMSTATE_VARRAY_UINT32() is used in hw/ds1225y.c, and we checked
>> VMS_VARRAY_UINT32 bit of field->flags in vmstate_load_state(),
>> but we don't check this bit in vmstate_save_state().
>
> So what were the symptoms? Does this need to be backported to stable?

You don't initialize n_elems correctly when saving.

It is only used (currently) with ds1225y.c, that is used on mips_jazz,
and mips_jazz don't support migration.  So it is up to you if it is
needed for stable or not (it is not urgent, though).

Later, Juan.


> Andreas
>
>> 
>> Signed-off-by: Amos Kong <ak...@redhat.com>
>> ---
>>  savevm.c |    2 ++
>>  1 files changed, 2 insertions(+), 0 deletions(-)
>> 
>> diff --git a/savevm.c b/savevm.c
>> index 80be1ff..694eaa4 100644
>> --- a/savevm.c
>> +++ b/savevm.c
>> @@ -1486,6 +1486,8 @@ void vmstate_save_state(QEMUFile *f, const 
>> VMStateDescription *vmsd,
>>                  n_elems = field->num;
>>              } else if (field->flags & VMS_VARRAY_INT32) {
>>                  n_elems = *(int32_t *)(opaque+field->num_offset);
>> +            } else if (field->flags & VMS_VARRAY_UINT32) {
>> +                n_elems = *(uint32_t *)(opaque+field->num_offset);
>>              } else if (field->flags & VMS_VARRAY_UINT16) {
>>                  n_elems = *(uint16_t *)(opaque+field->num_offset);
>>              } else if (field->flags & VMS_VARRAY_UINT8) {

Reply via email to