On 05/12/2014 06:46 PM, Alexey Kardashevskiy wrote: > SPAPR IOMMU is a bus-less device and therefore its only ID in > migration stream is an instance id which is not reliable ID > as it depends on the command line parameters order. Since > libvirt may change the order, we need something better than that. > > This removes VMSD descriptor from the class definitiion and > registers it with @liobn as an intance ID to let the destination > side find the right device to receive migration data.
Ping? > > Signed-off-by: Alexey Kardashevskiy <[email protected]> > --- > hw/ppc/spapr_iommu.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/hw/ppc/spapr_iommu.c b/hw/ppc/spapr_iommu.c > index 72493d8..7c3f8c2 100644 > --- a/hw/ppc/spapr_iommu.c > +++ b/hw/ppc/spapr_iommu.c > @@ -140,6 +140,9 @@ static int spapr_tce_table_realize(DeviceState *dev) > > QLIST_INSERT_HEAD(&spapr_tce_tables, tcet, list); > > + vmstate_register(DEVICE(tcet), tcet->liobn, &vmstate_spapr_tce_table, > + tcet); > + > return 0; > } > > @@ -323,7 +326,6 @@ int spapr_tcet_dma_dt(void *fdt, int node_off, const char > *propname, > static void spapr_tce_table_class_init(ObjectClass *klass, void *data) > { > DeviceClass *dc = DEVICE_CLASS(klass); > - dc->vmsd = &vmstate_spapr_tce_table; > dc->init = spapr_tce_table_realize; > dc->reset = spapr_tce_reset; > > -- Alexey
