On Tue, 23 Apr 2013 13:38:10 +0200
Juan Quintela <quint...@redhat.com> wrote:

> Igor Mammedov <imamm...@redhat.com> wrote:
> 
> >  
> > +#define VMSTATE_CPU_STATUS_ARRAY(_field,
> > _state)                             \
> > +
> > {                                                                           
> > \
> > +     .name       =
> > (stringify(_field)),                                      \
> > +     .version_id = 0,
> > \
> 
> this line should be:
>    .version_id = 4, 
> 
> 
> > +     .num        =
> > PIIX4_PROC_LEN,                                           \
> > +     .info       =
> > &vmstate_info_uint8,                                      \
> > +     .size       =
> > sizeof(uint8_t),                                          \
> > +     .flags      =
> > VMS_ARRAY,                                                \
> > +     .offset     = vmstate_offset_array(_state, _field,
> > uint8_t,             \
> > +
> > PIIX4_PROC_LEN),                     \
> > + }
> > +
> >  /* qemu-kvm 1.2 uses version 3 but advertised as 2
> >   * To support incoming qemu-kvm 1.2 migration, change version_id
> >   * and minimum_version_id to 2 below (which breaks migration from
> 
> > @@ -265,7 +289,7 @@ static int acpi_load_old(QEMUFile *f, void *opaque,
> > int version_id) */
> >  static const VMStateDescription vmstate_acpi = {
> >      .name = "piix4_pm",
> > -    .version_id = 3,
> > +    .version_id = 4,
> >      .minimum_version_id = 3,
> >      .minimum_version_id_old = 1,
> >      .load_state_old = acpi_load_old,
> > @@ -281,6 +305,7 @@ static const VMStateDescription vmstate_acpi = {
> >          VMSTATE_STRUCT(ar.gpe, PIIX4PMState, 2, vmstate_gpe, ACPIGPE),
> >          VMSTATE_STRUCT(pci0_status, PIIX4PMState, 2, vmstate_pci_status,
> >                         struct pci_status),
> > +        VMSTATE_CPU_STATUS_ARRAY(gpe_cpu.sts, PIIX4PMState),
> 
> It is more,  I think that simply:
> 
> VMSTATE_UINT8_ARRAY_V(gpu_cpu.sts,  PIIX4PMstate, PIIX4_PROC_LEN,  4);
> 
> Should do the trick without the previous blob (it was needed for the old
> version because we have a uint32 data but we send a uint16 one).
> 
> Could you check?  I don't have an easy way to test that it "receives"
> the right value.
Just checked, it works with VMSTATE_UINT8_ARRAY_V as well,

but I have a question, why version should be 4, looking at git history
components of vmstate_acpi don't advance their version each time
vmstate_acpi change, they do it only when they themselves change.

> 
> Later,  Juan.
> 
> >          VMSTATE_END_OF_LIST()
> >      }
> >  };
> > @@ -585,6 +610,85 @@ static const MemoryRegionOps piix4_pci_ops = {
> 


Reply via email to