Paolo Bonzini <pbonz...@redhat.com> wrote: > From: Pavel Dovgalyuk <pavel.dovga...@ispras.ru> > > VMState added by this patch preserves correct > loading of the parallel port controller state. > > Signed-off-by: Pavel Dovgalyuk <pavel.dovga...@ispras.ru> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
This breaks migration with old machine type, but as far as I can see, parallel is only added when used, and if we are using it, we need this, right? If my understanding is correct: Acked-by: Juan Quintela <quint...@redhat.com> > --- > hw/char/parallel.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/hw/char/parallel.c b/hw/char/parallel.c > index 7ac90a5..c2b553f 100644 > --- a/hw/char/parallel.c > +++ b/hw/char/parallel.c > @@ -477,6 +477,23 @@ static const MemoryRegionPortio > isa_parallel_portio_sw_list[] = { > PORTIO_END_OF_LIST(), > }; > > + > +static const VMStateDescription vmstate_parallel_isa = { > + .name = "parallel_isa", > + .version_id = 1, > + .minimum_version_id = 1, > + .fields = (VMStateField[]) { > + VMSTATE_UINT8(state.dataw, ISAParallelState), > + VMSTATE_UINT8(state.datar, ISAParallelState), > + VMSTATE_UINT8(state.status, ISAParallelState), > + VMSTATE_UINT8(state.control, ISAParallelState), > + VMSTATE_INT32(state.irq_pending, ISAParallelState), > + VMSTATE_INT32(state.epp_timeout, ISAParallelState), > + VMSTATE_END_OF_LIST() > + } > +}; > + > + > static void parallel_isa_realizefn(DeviceState *dev, Error **errp) > { > static int index; > @@ -606,6 +623,7 @@ static void parallel_isa_class_initfn(ObjectClass *klass, > void *data) > DeviceClass *dc = DEVICE_CLASS(klass); > > dc->realize = parallel_isa_realizefn; > + dc->vmsd = &vmstate_parallel_isa; > dc->props = parallel_isa_properties; > set_bit(DEVICE_CATEGORY_INPUT, dc->categories); > }