[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH for-next v2 00/22] QOM realize for virtio
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [PATCH for-next v2 00/22] QOM realize for virtio |
Date: |
Thu, 1 Aug 2013 04:17:21 +0200 |
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().
Paolo, waiting on your review; deferred to last patch so we can easily drop it.
v2 avoids adding class structs to store parent_* fields by introducing an
OBJECT_GET_PARENT_CLASS() macro inspired by Peter C. It does the conversion
in multiple steps based on an approach by Hervé and tries to separate out
refactorings as requested by mst.
Available from:
https://github.com/afaerber/qemu-cpu/commits/realize-virtio.v2
git://github.com/afaerber/qemu-cpu.git realize-virtio.v2
Regards,
Andreas
v1 -> v2:
* Prepended patch introducing OBJECT_GET_PARENT_CLASS() macro (Peter C.).
* Prepended patch allowing empty VirtioDevice::init (Hervé).
* Split VirtioDevice QOM realize conversion per device (mst).
* Split out cleanups (mst).
* Split out propagating unrealization.
* Split out VirtIOSCSICommon QOM conversion.
* Dropped klass -> oc cleanup since no new variables are added any more.
* Split off VirtConsole QOM conversion (an independent type hierarchy).
Cc: Anthony Liguori <address@hidden>
Cc: Michael S. Tsirkin <address@hidden>
Cc: Peter Crosthwaite <address@hidden>
Cc: Hervé Poussineau <address@hidden>
Cc: Paolo Bonzini <address@hidden>
Cc: Jesse Larrew <address@hidden>
Cc: Frederic Konrad <address@hidden>
Cc: Hu Tao <address@hidden>
Cc: Alexey Kardashevskiy <address@hidden>
Andreas Färber (22):
object: Add OBJECT_GET_PARENT_CLASS() macro
virtio-console: Use exitfn for virtserialport, too
virtio-9p-device: Avoid freeing uninitialized memory
virtio-blk-dataplane: Improve error reporting
virtio: Allow NULL VirtioDeviceClass::init hook
virtio-9p: QOM realize preparations
virtio-9p: Convert to QOM realize
virtio-blk: QOM realize preparations
virtio-blk: Convert to QOM realize
virtio-serial: QOM realize preparations
virtio-serial: Convert to QOM realize
virtio-net: QOM realize preparations
virtio-net: Convert to QOM realize
virtio-balloon: QOM realize preparations
virtio-balloon: Convert to QOM realize
virtio-rng: QOM realize preparations
virtio-rng: Convert to QOM realize
virtio-scsi: QOM realize preparations
virtio-scsi: Convert to QOM realize
virtio: Convert VirtioDevice to QOM realize
virtio: Unrealize parent
virtio-scsi: Convert virtio_scsi_common_[un]realize to QOM realize
hw/9pfs/virtio-9p-device.c | 49 ++++++++++++++-------------
hw/9pfs/virtio-9p.h | 2 ++
hw/block/dataplane/virtio-blk.c | 30 +++++++++--------
hw/block/dataplane/virtio-blk.h | 5 +--
hw/block/virtio-blk.c | 53 +++++++++++++++++++----------
hw/char/virtio-console.c | 1 +
hw/char/virtio-serial-bus.c | 39 ++++++++++++---------
hw/net/virtio-net.c | 42 ++++++++++++-----------
hw/scsi/vhost-scsi.c | 49 +++++++++++++++------------
hw/scsi/virtio-scsi.c | 69 ++++++++++++++++++++++----------------
hw/virtio/virtio-balloon.c | 40 +++++++++++++---------
hw/virtio/virtio-rng.c | 43 +++++++++++++-----------
hw/virtio/virtio.c | 20 ++++-------
include/hw/virtio/vhost-scsi.h | 2 ++
include/hw/virtio/virtio-balloon.h | 2 ++
include/hw/virtio/virtio-blk.h | 2 ++
include/hw/virtio/virtio-net.h | 2 ++
include/hw/virtio/virtio-rng.h | 2 ++
include/hw/virtio/virtio-scsi.h | 7 ++--
include/hw/virtio/virtio-serial.h | 2 ++
include/hw/virtio/virtio.h | 6 ++--
include/qom/object.h | 10 ++++++
22 files changed, 282 insertions(+), 195 deletions(-)
--
1.8.1.4
- [Qemu-devel] [PATCH for-next v2 00/22] QOM realize for virtio,
Andreas Färber <=
- [Qemu-devel] [PATCH for-next v2 03/22] virtio-9p-device: Avoid freeing uninitialized memory, Andreas Färber, 2013/07/31
- [Qemu-devel] [PATCH for-next v2 01/22] object: Add OBJECT_GET_PARENT_CLASS() macro, Andreas Färber, 2013/07/31
- [Qemu-devel] [PATCH for-next v2 05/22] virtio: Allow NULL VirtioDeviceClass::init hook, Andreas Färber, 2013/07/31
- [Qemu-devel] [PATCH for-next v2 07/22] virtio-9p: Convert to QOM realize, Andreas Färber, 2013/07/31
- [Qemu-devel] [PATCH for-next v2 08/22] virtio-blk: QOM realize preparations, Andreas Färber, 2013/07/31
- [Qemu-devel] [PATCH for-next v2 02/22] virtio-console: Use exitfn for virtserialport, too, Andreas Färber, 2013/07/31
- [Qemu-devel] [PATCH for-next v2 06/22] virtio-9p: QOM realize preparations, Andreas Färber, 2013/07/31
- [Qemu-devel] [PATCH for-next v2 04/22] virtio-blk-dataplane: Improve error reporting, Andreas Färber, 2013/07/31
- [Qemu-devel] [PATCH for-next v2 10/22] virtio-serial: QOM realize preparations, Andreas Färber, 2013/07/31
- [Qemu-devel] [PATCH for-next v2 09/22] virtio-blk: Convert to QOM realize, Andreas Färber, 2013/07/31