David Gibson <da...@gibson.dropbear.id.au> wrote: > Currently the savevm code contains a VMSTATE_STRUCT_VARRAY_POINTER_INT32 > helper (a variably sized array with the number of elements in an int32_t), > but not VMSTATE_STRUCT_VARRAY_POINTER_UINT32 (... with the number of > elements in a uint32_t). This patch (trivially) fixes the deficiency. > > Signed-off-by: David Gibson <da...@gibson.dropbear.id.au> > --- > include/migration/vmstate.h | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h > index f0a6374..fe39cd9 100644 > --- a/include/migration/vmstate.h > +++ b/include/migration/vmstate.h > @@ -339,6 +339,16 @@ extern const VMStateInfo vmstate_info_bitmap; > .offset = vmstate_offset_pointer(_state, _field, _type), \ > } > > +#define VMSTATE_STRUCT_VARRAY_POINTER_UINT32(_field, _state, _field_num, > _vmsd, _type) { \ > + .name = (stringify(_field)), \ > + .version_id = 0, \ > + .num_offset = vmstate_offset_value(_state, _field_num, uint32_t),\ > + .size = sizeof(_type), \ > + .vmsd = &(_vmsd), \ > + .flags = VMS_POINTER | VMS_VARRAY_INT32 | VMS_STRUCT, \
We are overridding VMS_VARRAYS_INT32 here, but if we have so many elements in the array, we have other problems to fix O:-) > + .offset = vmstate_offset_pointer(_state, _field, _type), \ > +} > + > #define VMSTATE_STRUCT_VARRAY_POINTER_UINT16(_field, _state, _field_num, > _vmsd, _type) { \ > .name = (stringify(_field)), \ > .version_id = 0, \