On Fri, Jun 07, 2013 at 08:18:55PM +0200, Andreas Färber wrote: > Hello, > > This series converts virtio devices to QOM realize/unrealize. > It is intended as base for fixing virtio-net initialization order issues, > as reported by Jesse. Only partially tested though. > > Note that while VirtioDevice was setting a DeviceClass::exit callback > for cleaning up the bus name, this was overwritten by most derived classes. > That is fixed as part of this conversion. > > Similarly, virtio_scsi_common_{init,exit} can be moved to VirtIOSCSICommon > now. > This has the side-effect that the two SCSI subclasses now perform some > initializations after the common SCSI implementation has invoked > virtio_bus_plug_device(). > > As a follow-up, VirtIOSerialPort is also converted to QOM realize/unrealize. > As a side-effect, virtio-console realization is changed from in-order to > pre-order. > > Incidentally I stumbled over a minor cleanup issue with virtserialport. > > Available from: > https://github.com/afaerber/qemu-cpu/commits/realize-virtio.v1 > git://github.com/afaerber/qemu-cpu.git realize-virtio.v1 > > Regards, > Andreas
I think it's a good idea overall. A bit busy with other things now so only had time to glance over this quickly, I sent some minor comments separately. More review hopefully later this week. > Cc: Anthony Liguori <anth...@codemonkey.ws> > Cc: Paolo Bonzini <pbonz...@redhat.com> > Cc: Michael S. Tsirkin <m...@redhat.com> > Cc: Jesse Larrew <jlar...@linux.vnet.ibm.com> > Cc: Frederic Konrad <fred.kon...@greensocs.com> > > Andreas Färber (5): > virtio-blk-dataplane: Improve error reporting > virtio: Convert VirtioDevice to QOM realize/unrealize > virtio-console: QOM'ify VirtConsole > virtio-console: Use exitfn for virtserialport, too > virtio-serial-port: Convert to QOM realize/unrealize > > hw/9pfs/virtio-9p-device.c | 67 ++++++++++++++------------ > hw/9pfs/virtio-9p.h | 13 +++++ > hw/block/dataplane/virtio-blk.c | 25 +++++----- > hw/block/dataplane/virtio-blk.h | 5 +- > hw/block/virtio-blk.c | 56 +++++++++++++-------- > hw/char/virtio-console.c | 99 > ++++++++++++++++++++++++++------------ > hw/char/virtio-serial-bus.c | 94 ++++++++++++++++++------------------ > hw/net/virtio-net.c | 48 ++++++++++-------- > hw/scsi/vhost-scsi.c | 59 +++++++++++++---------- > hw/scsi/virtio-scsi.c | 85 ++++++++++++++++++++------------ > hw/virtio/virtio-balloon.c | 50 +++++++++++-------- > hw/virtio/virtio-rng.c | 53 +++++++++++--------- > hw/virtio/virtio.c | 20 +++----- > include/hw/virtio/vhost-scsi.h | 13 +++++ > include/hw/virtio/virtio-balloon.h | 13 +++++ > include/hw/virtio/virtio-blk.h | 13 +++++ > include/hw/virtio/virtio-net.h | 13 +++++ > include/hw/virtio/virtio-rng.h | 13 +++++ > include/hw/virtio/virtio-scsi.h | 29 +++++++++-- > include/hw/virtio/virtio-serial.h | 24 ++++----- > include/hw/virtio/virtio.h | 6 ++- > 21 files changed, 513 insertions(+), 285 deletions(-) > > -- > 1.8.1.4