qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RESEND PATCH] vmstate: fix varrays with uint32_t index


From: Juan Quintela
Subject: Re: [Qemu-devel] [RESEND PATCH] vmstate: fix varrays with uint32_t indexes
Date: Tue, 13 Mar 2012 18:46:55 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.93 (gnu/linux)

Andreas Färber <address@hidden> 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 <address@hidden>
>> ---
>>  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

[Prev in Thread] Current Thread [Next in Thread]