All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Ming Lei <ming.lei@canonical.com>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] virtio: move common virtio properties to bus class device
Date: Mon, 30 Jun 2014 14:52:25 +0300	[thread overview]
Message-ID: <20140630115225.GA29745@redhat.com> (raw)
In-Reply-To: <CACVXFVMHcV1O5gWgR6A5G4YKbjauFBjxdDUQzYq=B9xd+AvHZg@mail.gmail.com>

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.

  reply	other threads:[~2014-06-30 11:52 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
2014-06-30 16:03     ` 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=20140630115225.GA29745@redhat.com \
    --to=mst@redhat.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=ming.lei@canonical.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /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.