From: "Michael S. Tsirkin" <mst@redhat.com>
To: avi@redhat.com, kvm@vger.kernel.org,
virtualization@lists.linux-foundation.org
Cc: gregory.haskins@gmail.com
Subject: [PATCHv4 1/6] qemu/virtio: move features to an inline function
Date: Tue, 3 Nov 2009 00:23:30 +0200 [thread overview]
Message-ID: <20091102222329.GB15153@redhat.com> (raw)
In-Reply-To: <cover.1257200517.git.mst@redhat.com>
devices should have the final say over which virtio features they
support. E.g. indirect entries may or may not make sense in the context
of virtio-console. In particular, for vhost, we do not want to report to
guest bits not supported by kernel backend. Move the common bits from
virtio-pci to an inline function and let each device call it.
No functional changes.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/virtio-balloon.c | 2 +-
hw/virtio-blk.c | 2 +-
hw/virtio-console.c | 2 +-
hw/virtio-net.c | 2 +-
hw/virtio-pci.c | 3 ---
hw/virtio.h | 10 ++++++++++
6 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/hw/virtio-balloon.c b/hw/virtio-balloon.c
index 7ca783e..15b50bb 100644
--- a/hw/virtio-balloon.c
+++ b/hw/virtio-balloon.c
@@ -127,7 +127,7 @@ static void virtio_balloon_set_config(VirtIODevice *vdev,
static uint32_t virtio_balloon_get_features(VirtIODevice *vdev)
{
- return 0;
+ return virtio_common_features();
}
static ram_addr_t virtio_balloon_to_target(void *opaque, ram_addr_t target)
diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c
index 2630b99..db727b9 100644
--- a/hw/virtio-blk.c
+++ b/hw/virtio-blk.c
@@ -445,7 +445,7 @@ static uint32_t virtio_blk_get_features(VirtIODevice *vdev)
if (strcmp(s->serial_str, "0"))
features |= 1 << VIRTIO_BLK_F_IDENTIFY;
- return features;
+ return features | virtio_common_features();
}
static void virtio_blk_save(QEMUFile *f, void *opaque)
diff --git a/hw/virtio-console.c b/hw/virtio-console.c
index 92c953c..79544bb 100644
--- a/hw/virtio-console.c
+++ b/hw/virtio-console.c
@@ -53,7 +53,7 @@ static void virtio_console_handle_input(VirtIODevice *vdev, VirtQueue *vq)
static uint32_t virtio_console_get_features(VirtIODevice *vdev)
{
- return 0;
+ return virtio_common_features();
}
static int vcon_can_read(void *opaque)
diff --git a/hw/virtio-net.c b/hw/virtio-net.c
index ce8e6cb..469c6e3 100644
--- a/hw/virtio-net.c
+++ b/hw/virtio-net.c
@@ -154,7 +154,7 @@ static uint32_t virtio_net_get_features(VirtIODevice *vdev)
}
#endif
- return features;
+ return features | virtio_common_features();
}
static uint32_t virtio_net_bad_features(VirtIODevice *vdev)
diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c
index 01782e5..0716f6f 100644
--- a/hw/virtio-pci.c
+++ b/hw/virtio-pci.c
@@ -230,9 +230,6 @@ static uint32_t virtio_ioport_read(VirtIOPCIProxy *proxy, uint32_t addr)
switch (addr) {
case VIRTIO_PCI_HOST_FEATURES:
ret = vdev->get_features(vdev);
- ret |= (1 << VIRTIO_F_NOTIFY_ON_EMPTY);
- ret |= (1 << VIRTIO_RING_F_INDIRECT_DESC);
- ret |= (1 << VIRTIO_F_BAD_FEATURE);
break;
case VIRTIO_PCI_GUEST_FEATURES:
ret = vdev->features;
diff --git a/hw/virtio.h b/hw/virtio.h
index 0f9be7d..799e608 100644
--- a/hw/virtio.h
+++ b/hw/virtio.h
@@ -167,4 +167,14 @@ VirtIODevice *virtio_net_init(DeviceState *dev);
VirtIODevice *virtio_console_init(DeviceState *dev);
VirtIODevice *virtio_balloon_init(DeviceState *dev);
+static inline uint32_t virtio_common_features(void)
+{
+ uint32_t features = 0;
+ features |= (1 << VIRTIO_F_NOTIFY_ON_EMPTY);
+ features |= (1 << VIRTIO_RING_F_INDIRECT_DESC);
+ features |= (1 << VIRTIO_F_BAD_FEATURE);
+
+ return features;
+}
+
#endif
--
1.6.5.2.143.g8cc62
next prev parent reply other threads:[~2009-11-02 22:26 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1257200517.git.mst@redhat.com>
2009-11-02 22:23 ` [PATCHv4 1/6] qemu/virtio: move features to an inline function Michael S. Tsirkin
2009-11-02 22:23 ` Michael S. Tsirkin [this message]
2009-11-02 22:33 ` Anthony Liguori
2009-11-02 22:33 ` Anthony Liguori
2009-11-03 5:08 ` Avi Kivity
2009-11-03 5:08 ` Avi Kivity
2009-11-03 10:40 ` Michael S. Tsirkin
2009-11-03 10:40 ` Michael S. Tsirkin
2009-11-02 22:23 ` [PATCHv4 2/6] qemu/net: routines to get tap fd Michael S. Tsirkin
2009-11-02 22:23 ` Michael S. Tsirkin
2009-11-02 22:23 ` [PATCHv4 3/6] qemu/net: add raw backend Or Gerlitz
2009-11-02 22:23 ` Or Gerlitz
2009-11-02 22:24 ` [PATCHv4 4/6] qemu/net: move typedef to qemu-common.h Michael S. Tsirkin
2009-11-02 22:24 ` Michael S. Tsirkin
2009-11-02 22:24 ` [PATCHv4 5/6] qemu/raw: add API to get raw socket Michael S. Tsirkin
2009-11-02 22:24 ` Michael S. Tsirkin
2009-11-02 22:24 ` [PATCHv4 6/6] qemu-kvm: vhost-net implementation Michael S. Tsirkin
2009-11-02 22:24 ` Michael S. Tsirkin
2009-11-05 0:22 ` Sridhar Samudrala
2009-11-05 0:22 ` Sridhar Samudrala
2009-11-05 8:23 ` Michael S. Tsirkin
2009-11-05 8:23 ` Michael S. Tsirkin
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=20091102222329.GB15153@redhat.com \
--to=mst@redhat.com \
--cc=avi@redhat.com \
--cc=gregory.haskins@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=virtualization@lists.linux-foundation.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.