Re: [Qemu-devel] [RESEND PATCH] vmstate: fix varrays with uint32_t indexes
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
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
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
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
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) {