From: "Michael S. Tsirkin" <mst@redhat.com>
To: Ming Lei <ming.lei@canonical.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
qemu-devel@nongnu.org, stefanha@redhat.com,
Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v1] virtio: move common virtio properties to bus class device
Date: Wed, 2 Jul 2014 12:58:48 +0300 [thread overview]
Message-ID: <20140702095848.GA4567@redhat.com> (raw)
In-Reply-To: <1404144118-18316-1-git-send-email-ming.lei@canonical.com>
On Tue, Jul 01, 2014 at 12:01:58AM +0800, Ming Lei wrote:
> The two common virtio features can be defined per bus, so move all
> into bus class device to make code more clean.
>
> As discussed with cornelia, s390-virtio-blk doesn't support
> the two features at all, so keep s390-virtio as it.
>
> Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> #for s390 ccw
> Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Ming Lei <ming.lei@canonical.com>
Looks like this got merged meanwhile:
commit caffdac363801cd2cf2bf01ad013a8c1e1e43800
Author: Stefan Hajnoczi <stefanha@redhat.com>
Date: Wed Jun 18 17:58:33 2014 +0800
virtio-blk: use aliases instead of duplicate qdev properties
so there was a conflict again.
I resolved it, but pls check out pci branch in my tree
and verify that it's all good to go.
Thanks!
> ---
> v1:
> - rebased on latest master branch of qemu upstream
>
> hw/s390x/s390-virtio-bus.c | 2 ++
> hw/s390x/virtio-ccw.c | 11 ++++++-----
> hw/virtio/virtio-pci.c | 12 ++++++------
> include/hw/virtio/virtio-blk.h | 3 ---
> include/hw/virtio/virtio-net.h | 1 -
> include/hw/virtio/virtio-scsi.h | 1 -
> 6 files changed, 14 insertions(+), 16 deletions(-)
>
> diff --git a/hw/s390x/s390-virtio-bus.c b/hw/s390x/s390-virtio-bus.c
> index 7c8c81b..65227a5 100644
> --- a/hw/s390x/s390-virtio-bus.c
> +++ b/hw/s390x/s390-virtio-bus.c
> @@ -491,6 +491,7 @@ static unsigned virtio_s390_get_features(DeviceState *d)
>
> static Property s390_virtio_net_properties[] = {
> DEFINE_NIC_PROPERTIES(VirtIONetS390, vdev.nic_conf),
> + DEFINE_VIRTIO_COMMON_FEATURES(VirtIOS390Device, host_features),
> DEFINE_VIRTIO_NET_FEATURES(VirtIOS390Device, host_features),
> DEFINE_VIRTIO_NET_PROPERTIES(VirtIONetS390, vdev.net_conf),
> DEFINE_PROP_END_OF_LIST(),
> @@ -618,6 +619,7 @@ static const TypeInfo virtio_s390_device_info = {
>
> static Property s390_virtio_scsi_properties[] = {
> DEFINE_VIRTIO_SCSI_PROPERTIES(VirtIOSCSIS390, vdev.parent_obj.conf),
> + DEFINE_VIRTIO_COMMON_FEATURES(VirtIOS390Device, host_features),
> DEFINE_VIRTIO_SCSI_FEATURES(VirtIOS390Device, host_features),
> DEFINE_PROP_END_OF_LIST(),
> };
> diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
> index 05656a2..b7a1b97 100644
> --- a/hw/s390x/virtio-ccw.c
> +++ b/hw/s390x/virtio-ccw.c
> @@ -1399,7 +1399,6 @@ static const TypeInfo virtio_ccw_net = {
>
> static Property virtio_ccw_blk_properties[] = {
> DEFINE_PROP_STRING("devno", VirtioCcwDevice, bus_id),
> - DEFINE_VIRTIO_BLK_FEATURES(VirtioCcwDevice, host_features[0]),
> DEFINE_VIRTIO_BLK_PROPERTIES(VirtIOBlkCcw, blk),
> DEFINE_PROP_BIT("ioeventfd", VirtioCcwDevice, flags,
> VIRTIO_CCW_FLAG_USE_IOEVENTFD_BIT, true),
> @@ -1431,7 +1430,6 @@ static const TypeInfo virtio_ccw_blk = {
> static Property virtio_ccw_serial_properties[] = {
> DEFINE_PROP_STRING("devno", VirtioCcwDevice, bus_id),
> DEFINE_VIRTIO_SERIAL_PROPERTIES(VirtioSerialCcw, vdev.serial),
> - DEFINE_VIRTIO_COMMON_FEATURES(VirtioCcwDevice, host_features[0]),
> DEFINE_PROP_BIT("ioeventfd", VirtioCcwDevice, flags,
> VIRTIO_CCW_FLAG_USE_IOEVENTFD_BIT, true),
> DEFINE_PROP_END_OF_LIST(),
> @@ -1458,7 +1456,6 @@ static const TypeInfo virtio_ccw_serial = {
>
> static Property virtio_ccw_balloon_properties[] = {
> DEFINE_PROP_STRING("devno", VirtioCcwDevice, bus_id),
> - DEFINE_VIRTIO_COMMON_FEATURES(VirtioCcwDevice, host_features[0]),
> DEFINE_PROP_BIT("ioeventfd", VirtioCcwDevice, flags,
> VIRTIO_CCW_FLAG_USE_IOEVENTFD_BIT, true),
> DEFINE_PROP_END_OF_LIST(),
> @@ -1515,7 +1512,6 @@ static const TypeInfo virtio_ccw_scsi = {
> static Property vhost_ccw_scsi_properties[] = {
> DEFINE_PROP_STRING("devno", VirtioCcwDevice, bus_id),
> DEFINE_VHOST_SCSI_PROPERTIES(VirtIOSCSICcw, vdev.parent_obj.conf),
> - DEFINE_VIRTIO_COMMON_FEATURES(VirtioCcwDevice, host_features[0]),
> DEFINE_PROP_END_OF_LIST(),
> };
>
> @@ -1552,7 +1548,6 @@ static void virtio_ccw_rng_instance_init(Object *obj)
>
> static Property virtio_ccw_rng_properties[] = {
> DEFINE_PROP_STRING("devno", VirtioCcwDevice, bus_id),
> - DEFINE_VIRTIO_COMMON_FEATURES(VirtioCcwDevice, host_features[0]),
> DEFINE_VIRTIO_RNG_PROPERTIES(VirtIORNGCcw, vdev.conf),
> DEFINE_PROP_BIT("ioeventfd", VirtioCcwDevice, flags,
> VIRTIO_CCW_FLAG_USE_IOEVENTFD_BIT, true),
> @@ -1618,10 +1613,16 @@ static int virtio_ccw_busdev_unplug(DeviceState *dev)
> return 0;
> }
>
> +static Property virtio_ccw_properties[] = {
> + DEFINE_VIRTIO_COMMON_FEATURES(VirtioCcwDevice, host_features[0]),
> + DEFINE_PROP_END_OF_LIST(),
> +};
> +
> static void virtio_ccw_device_class_init(ObjectClass *klass, void *data)
> {
> DeviceClass *dc = DEVICE_CLASS(klass);
>
> + dc->props = virtio_ccw_properties;
> dc->init = virtio_ccw_busdev_init;
> dc->exit = virtio_ccw_busdev_exit;
> dc->unplug = virtio_ccw_busdev_unplug;
> diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
> index 57e1e61..fe01981 100644
> --- a/hw/virtio/virtio-pci.c
> +++ b/hw/virtio/virtio-pci.c
> @@ -917,7 +917,6 @@ static Property virtio_9p_pci_properties[] = {
> DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
> VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
> DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
> - DEFINE_VIRTIO_COMMON_FEATURES(VirtIOPCIProxy, host_features),
> DEFINE_VIRTIO_9P_PROPERTIES(V9fsPCIState, vdev.fsconf),
> DEFINE_PROP_END_OF_LIST(),
> };
> @@ -1040,11 +1039,17 @@ static void virtio_pci_reset(DeviceState *qdev)
> proxy->flags &= ~VIRTIO_PCI_FLAG_BUS_MASTER_BUG;
> }
>
> +static Property virtio_pci_properties[] = {
> + DEFINE_VIRTIO_COMMON_FEATURES(VirtIOPCIProxy, host_features),
> + DEFINE_PROP_END_OF_LIST(),
> +};
> +
> static void virtio_pci_class_init(ObjectClass *klass, void *data)
> {
> DeviceClass *dc = DEVICE_CLASS(klass);
> PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
>
> + dc->props = virtio_pci_properties;
> k->init = virtio_pci_init;
> k->exit = virtio_pci_exit;
> k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
> @@ -1072,7 +1077,6 @@ static Property virtio_blk_pci_properties[] = {
> #ifdef CONFIG_VIRTIO_BLK_DATA_PLANE
> DEFINE_PROP_BIT("x-data-plane", VirtIOBlkPCI, blk.data_plane, 0, false),
> #endif
> - DEFINE_VIRTIO_BLK_FEATURES(VirtIOPCIProxy, host_features),
> DEFINE_VIRTIO_BLK_PROPERTIES(VirtIOBlkPCI, blk),
> DEFINE_PROP_END_OF_LIST(),
> };
> @@ -1195,7 +1199,6 @@ static const TypeInfo virtio_scsi_pci_info = {
> static Property vhost_scsi_pci_properties[] = {
> DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
> DEV_NVECTORS_UNSPECIFIED),
> - DEFINE_VIRTIO_COMMON_FEATURES(VirtIOPCIProxy, host_features),
> DEFINE_VHOST_SCSI_PROPERTIES(VHostSCSIPCI, vdev.parent_obj.conf),
> DEFINE_PROP_END_OF_LIST(),
> };
> @@ -1276,7 +1279,6 @@ static void balloon_pci_stats_set_poll_interval(Object *obj, struct Visitor *v,
> }
>
> static Property virtio_balloon_pci_properties[] = {
> - DEFINE_VIRTIO_COMMON_FEATURES(VirtIOPCIProxy, host_features),
> DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
> DEFINE_PROP_END_OF_LIST(),
> };
> @@ -1379,7 +1381,6 @@ static Property virtio_serial_pci_properties[] = {
> VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
> DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
> DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
> - DEFINE_VIRTIO_COMMON_FEATURES(VirtIOPCIProxy, host_features),
> DEFINE_VIRTIO_SERIAL_PROPERTIES(VirtIOSerialPCI, vdev.serial),
> DEFINE_PROP_END_OF_LIST(),
> };
> @@ -1475,7 +1476,6 @@ static const TypeInfo virtio_net_pci_info = {
> /* virtio-rng-pci */
>
> static Property virtio_rng_pci_properties[] = {
> - DEFINE_VIRTIO_COMMON_FEATURES(VirtIOPCIProxy, host_features),
> DEFINE_VIRTIO_RNG_PROPERTIES(VirtIORngPCI, vdev.conf),
> DEFINE_PROP_END_OF_LIST(),
> };
> diff --git a/include/hw/virtio/virtio-blk.h b/include/hw/virtio/virtio-blk.h
> index 4bc9b54..7029477 100644
> --- a/include/hw/virtio/virtio-blk.h
> +++ b/include/hw/virtio/virtio-blk.h
> @@ -133,9 +133,6 @@ typedef struct VirtIOBlock {
> #endif
> } VirtIOBlock;
>
> -#define DEFINE_VIRTIO_BLK_FEATURES(_state, _field) \
> - DEFINE_VIRTIO_COMMON_FEATURES(_state, _field)
> -
> #ifdef __linux__
> #define DEFINE_VIRTIO_BLK_PROPERTIES(_state, _field) \
> DEFINE_BLOCK_PROPERTIES(_state, _field.conf), \
> diff --git a/include/hw/virtio/virtio-net.h b/include/hw/virtio/virtio-net.h
> index f7fccc0..6ceb5aa 100644
> --- a/include/hw/virtio/virtio-net.h
> +++ b/include/hw/virtio/virtio-net.h
> @@ -258,7 +258,6 @@ struct virtio_net_ctrl_mq {
> #define VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET 0
>
> #define DEFINE_VIRTIO_NET_FEATURES(_state, _field) \
> - DEFINE_VIRTIO_COMMON_FEATURES(_state, _field), \
> DEFINE_PROP_BIT("any_layout", _state, _field, VIRTIO_F_ANY_LAYOUT, true), \
> DEFINE_PROP_BIT("csum", _state, _field, VIRTIO_NET_F_CSUM, true), \
> DEFINE_PROP_BIT("guest_csum", _state, _field, VIRTIO_NET_F_GUEST_CSUM, true), \
> diff --git a/include/hw/virtio/virtio-scsi.h b/include/hw/virtio/virtio-scsi.h
> index a8f6185..0419ee4 100644
> --- a/include/hw/virtio/virtio-scsi.h
> +++ b/include/hw/virtio/virtio-scsi.h
> @@ -178,7 +178,6 @@ typedef struct {
> DEFINE_PROP_UINT32("cmd_per_lun", _state, _conf_field.cmd_per_lun, 128)
>
> #define DEFINE_VIRTIO_SCSI_FEATURES(_state, _feature_field) \
> - DEFINE_VIRTIO_COMMON_FEATURES(_state, _feature_field), \
> DEFINE_PROP_BIT("hotplug", _state, _feature_field, VIRTIO_SCSI_F_HOTPLUG, \
> true), \
> DEFINE_PROP_BIT("param_change", _state, _feature_field, \
> --
> 1.7.9.5
next prev parent reply other threads:[~2014-07-02 10:57 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-30 16:01 [Qemu-devel] [PATCH v1] virtio: move common virtio properties to bus class device Ming Lei
2014-07-02 9:58 ` Michael S. Tsirkin [this message]
2014-07-02 11:27 ` Ming Lei
2014-07-02 10:35 ` Michael S. Tsirkin
2014-07-02 12:27 ` Ming Lei
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140702095848.GA4567@redhat.com \
--to=mst@redhat.com \
--cc=ming.lei@canonical.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.