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

2012-03-17 Thread Blue Swirl
Thanks, applied.

On Tue, Mar 13, 2012 at 06:05, Amos Kong ak...@redhat.com wrote:
 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().

 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) {




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

2012-03-14 Thread Hervé Poussineau

Amos Kong a écrit :

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().

Signed-off-by: Amos Kong ak...@redhat.com


Acked-by: Hervé Poussineau hpous...@reactos.org



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

2012-03-13 Thread Juan Quintela
Amos Kong ak...@redhat.com wrote:
 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().

 Signed-off-by: Amos Kong ak...@redhat.com

Acked-by: Juan Quintela quint...@redhat.com



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

2012-03-13 Thread Andreas Färber
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?

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) {

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



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

2012-03-13 Thread Juan Quintela
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) {