From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58668) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X1a86-0005vG-RR for qemu-devel@nongnu.org; Mon, 30 Jun 2014 07:52:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X1a80-0003Z6-UI for qemu-devel@nongnu.org; Mon, 30 Jun 2014 07:52:14 -0400 Received: from mx1.redhat.com ([209.132.183.28]:27202) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X1a80-0003Ya-Ex for qemu-devel@nongnu.org; Mon, 30 Jun 2014 07:52:08 -0400 Date: Mon, 30 Jun 2014 14:52:25 +0300 From: "Michael S. Tsirkin" Message-ID: <20140630115225.GA29745@redhat.com> References: <1403075592-9684-1-git-send-email-ming.lei@canonical.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [Qemu-devel] [PATCH] virtio: move common virtio properties to bus class device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Ming Lei Cc: Cornelia Huck , Peter Maydell , qemu-devel@nongnu.org, 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 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 #for s390 ccw > > Suggested-by: Paolo Bonzini > > Signed-off-by: Ming Lei > > --- > > 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.