[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1] virtio: move common virtio properties to bus
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH v1] virtio: move common virtio properties to bus class device |
Date: |
Wed, 2 Jul 2014 12:58:48 +0300 |
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 <address@hidden> #for s390 ccw
> Suggested-by: Paolo Bonzini <address@hidden>
> Signed-off-by: Ming Lei <address@hidden>
Looks like this got merged meanwhile:
commit caffdac363801cd2cf2bf01ad013a8c1e1e43800
Author: Stefan Hajnoczi <address@hidden>
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
- Re: [Qemu-devel] [PATCH v1] virtio: move common virtio properties to bus class device,
Michael S. Tsirkin <=