On Tue, 12 Jul 2016 15:54:57 +0200
Gerd Hoffmann <[email protected]> wrote:

> > @@ -1170,9 +1166,6 @@ static void virtio_gpu_device_realize(DeviceState 
> > *qdev, Error **errp)
> >  
> >      if (virtio_gpu_virgl_enabled(g->conf)) {
> >          vmstate_register(qdev, -1, &vmstate_virtio_gpu_unmigratable, g);
> > -    } else {
> > -        register_savevm(qdev, "virtio-gpu", -1, VIRTIO_GPU_VM_VERSION,
> > -                        virtio_gpu_save, virtio_gpu_load, g);
> >      }
> >  }
> >  
> > @@ -1220,6 +1213,9 @@ static void virtio_gpu_reset(VirtIODevice *vdev)
> >  #endif
> >  }
> >  
> > +VMSTATE_VIRTIO_DEVICE(gpu, VIRTIO_GPU_VM_VERSION, virtio_gpu_load,
> > +                      virtio_gpu_save);
> > +
> >  static Property virtio_gpu_properties[] = {
> >      DEFINE_PROP_UINT32("max_outputs", VirtIOGPU, conf.max_outputs, 1),
> >  #ifdef CONFIG_VIRGL
> > @@ -1245,6 +1241,7 @@ static void virtio_gpu_class_init(ObjectClass *klass, 
> > void *data)
> >      vdc->reset = virtio_gpu_reset;
> >  
> >      dc->props = virtio_gpu_properties;
> > +    dc->vmsd = &vmstate_virtio_gpu;
> >  }
> >  
> >  static const TypeInfo virtio_gpu_info = {
> 
> This is confusing.  I think for the virtio_gpu_virgl_enabled() case we
> install *two* vmstates now ...

I don't think that matters, as the unmigratable state already blocks,
no?

> 
> I think you should move up VMSTATE_VIRTIO_DEVICE, then simply replace
> the register_savevm() call with a vmstate_register() call.

It would make virtio-gpu look different from all other devices, though.


Reply via email to