* [Qemu-devel] [PATCH] virtio: move common virtio properties to bus class device
@ 2014-06-18 7:13 Ming Lei
2014-06-30 10:15 ` Ming Lei
0 siblings, 1 reply; 4+ messages in thread
From: Ming Lei @ 2014-06-18 7:13 UTC (permalink / raw)
To: Peter Maydell, qemu-devel, Paolo Bonzini
Cc: Cornelia Huck, Ming Lei, Michael S. Tsirkin
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>
---
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 9c71afa..921cdc2 100644
--- a/hw/s390x/s390-virtio-bus.c
+++ b/hw/s390x/s390-virtio-bus.c
@@ -504,6 +504,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(),
@@ -631,6 +632,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 2bf0af8..c0124e1 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -1126,7 +1126,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),
@@ -1158,7 +1157,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(),
@@ -1185,7 +1183,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(),
@@ -1242,7 +1239,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(),
};
@@ -1279,7 +1275,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),
@@ -1345,10 +1340,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 b437f19..af2e1c3 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(),
};
@@ -1038,11 +1037,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;
@@ -1071,7 +1076,6 @@ static Property virtio_blk_pci_properties[] = {
DEFINE_PROP_BIT("x-data-plane", VirtIOBlkPCI, blk.data_plane, 0, false),
DEFINE_PROP_UINT32("num_queues", VirtIOBlkPCI, blk.num_queues, 1),
#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 0135ca2..03f7ed4 100644
--- a/include/hw/virtio/virtio-blk.h
+++ b/include/hw/virtio/virtio-blk.h
@@ -144,9 +144,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 df60f16..bf65b26 100644
--- a/include/hw/virtio/virtio-net.h
+++ b/include/hw/virtio/virtio-net.h
@@ -242,7 +242,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 42b1024..367afc6 100644
--- a/include/hw/virtio/virtio-scsi.h
+++ b/include/hw/virtio/virtio-scsi.h
@@ -180,7 +180,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
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCH] virtio: move common virtio properties to bus class device
2014-06-18 7:13 [Qemu-devel] [PATCH] virtio: move common virtio properties to bus class device Ming Lei
@ 2014-06-30 10:15 ` Ming Lei
2014-06-30 11:52 ` Michael S. Tsirkin
0 siblings, 1 reply; 4+ messages in thread
From: Ming Lei @ 2014-06-30 10:15 UTC (permalink / raw)
To: Peter Maydell, qemu-devel, Paolo Bonzini
Cc: Cornelia Huck, Ming Lei, Michael S. Tsirkin
Hi Michael,
On Wed, Jun 18, 2014 at 3:13 PM, Ming Lei <ming.lei@canonical.com> 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>
> ---
> 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 9c71afa..921cdc2 100644
> --- a/hw/s390x/s390-virtio-bus.c
> +++ b/hw/s390x/s390-virtio-bus.c
> @@ -504,6 +504,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(),
> @@ -631,6 +632,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 2bf0af8..c0124e1 100644
> --- a/hw/s390x/virtio-ccw.c
> +++ b/hw/s390x/virtio-ccw.c
> @@ -1126,7 +1126,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),
> @@ -1158,7 +1157,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(),
> @@ -1185,7 +1183,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(),
> @@ -1242,7 +1239,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(),
> };
>
> @@ -1279,7 +1275,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),
> @@ -1345,10 +1340,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 b437f19..af2e1c3 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(),
> };
> @@ -1038,11 +1037,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;
> @@ -1071,7 +1076,6 @@ static Property virtio_blk_pci_properties[] = {
> DEFINE_PROP_BIT("x-data-plane", VirtIOBlkPCI, blk.data_plane, 0, false),
> DEFINE_PROP_UINT32("num_queues", VirtIOBlkPCI, blk.num_queues, 1),
> #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 0135ca2..03f7ed4 100644
> --- a/include/hw/virtio/virtio-blk.h
> +++ b/include/hw/virtio/virtio-blk.h
> @@ -144,9 +144,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 df60f16..bf65b26 100644
> --- a/include/hw/virtio/virtio-net.h
> +++ b/include/hw/virtio/virtio-net.h
> @@ -242,7 +242,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 42b1024..367afc6 100644
> --- a/include/hw/virtio/virtio-scsi.h
> +++ b/include/hw/virtio/virtio-scsi.h
> @@ -180,7 +180,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, \
This patch should have addressed all comments, and if you need me
to resend, please let me know.
Thanks,
--
Ming Lei
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCH] virtio: move common virtio properties to bus class device
2014-06-30 10:15 ` Ming Lei
@ 2014-06-30 11:52 ` Michael S. Tsirkin
2014-06-30 16:03 ` Ming Lei
0 siblings, 1 reply; 4+ messages in thread
From: Michael S. Tsirkin @ 2014-06-30 11:52 UTC (permalink / raw)
To: Ming Lei; +Cc: Cornelia Huck, Peter Maydell, qemu-devel, Paolo Bonzini
On Mon, Jun 30, 2014 at 06:15:35PM +0800, Ming Lei wrote:
> Hi Michael,
>
>
> On Wed, Jun 18, 2014 at 3:13 PM, Ming Lei <ming.lei@canonical.com> 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>
> > ---
> > 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 9c71afa..921cdc2 100644
> > --- a/hw/s390x/s390-virtio-bus.c
> > +++ b/hw/s390x/s390-virtio-bus.c
> > @@ -504,6 +504,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(),
> > @@ -631,6 +632,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 2bf0af8..c0124e1 100644
> > --- a/hw/s390x/virtio-ccw.c
> > +++ b/hw/s390x/virtio-ccw.c
> > @@ -1126,7 +1126,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),
> > @@ -1158,7 +1157,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(),
> > @@ -1185,7 +1183,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(),
> > @@ -1242,7 +1239,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(),
> > };
> >
> > @@ -1279,7 +1275,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),
> > @@ -1345,10 +1340,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 b437f19..af2e1c3 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(),
> > };
> > @@ -1038,11 +1037,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;
> > @@ -1071,7 +1076,6 @@ static Property virtio_blk_pci_properties[] = {
> > DEFINE_PROP_BIT("x-data-plane", VirtIOBlkPCI, blk.data_plane, 0, false),
> > DEFINE_PROP_UINT32("num_queues", VirtIOBlkPCI, blk.num_queues, 1),
> > #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 0135ca2..03f7ed4 100644
> > --- a/include/hw/virtio/virtio-blk.h
> > +++ b/include/hw/virtio/virtio-blk.h
> > @@ -144,9 +144,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 df60f16..bf65b26 100644
> > --- a/include/hw/virtio/virtio-net.h
> > +++ b/include/hw/virtio/virtio-net.h
> > @@ -242,7 +242,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 42b1024..367afc6 100644
> > --- a/include/hw/virtio/virtio-scsi.h
> > +++ b/include/hw/virtio/virtio-scsi.h
> > @@ -180,7 +180,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, \
>
> This patch should have addressed all comments, and if you need me
> to resend, please let me know.
>
>
> Thanks,
> --
> Ming Lei
This does not apply, so pls resend.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCH] virtio: move common virtio properties to bus class device
2014-06-30 11:52 ` Michael S. Tsirkin
@ 2014-06-30 16:03 ` Ming Lei
0 siblings, 0 replies; 4+ messages in thread
From: Ming Lei @ 2014-06-30 16:03 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Cornelia Huck, Peter Maydell, qemu-devel, Paolo Bonzini
Hi Michael,
On Mon, Jun 30, 2014 at 7:52 PM, Michael S. Tsirkin <mst@redhat.com> wrote:
> This does not apply, so pls resend.
Resent out as v1.
Thanks,
--
Ming Lei
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-06-30 16:03 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-18 7:13 [Qemu-devel] [PATCH] virtio: move common virtio properties to bus class device Ming Lei
2014-06-30 10:15 ` Ming Lei
2014-06-30 11:52 ` Michael S. Tsirkin
2014-06-30 16:03 ` Ming Lei
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).