aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid L Stevens <dlstevens@us.ibm.com>2010-03-31 21:20:31 +0300
committerMichael S. Tsirkin <mst@redhat.com>2010-04-11 20:15:48 +0300
commitaf4c828e7043b2c594f904bca419fd3ab2b80a38 (patch)
treee74662b5ca5307806c6b0cdd3624451be910c512
parent8bbd1ce236130dc92d5d592e76701dd1c740df36 (diff)
vhost: fix features ack
vhost driver in qemu didn't ack features, and this happens to work because we don't really require any features. However, it's better not to rely on this. This patch passes features to vhost as guest acks them. Signed-off-by: David L Stevens <dlstevens@us.ibm.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--hw/virtio-net.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/hw/virtio-net.c b/hw/virtio-net.c
index 970ba06275..acb3cec7cb 100644
--- a/hw/virtio-net.c
+++ b/hw/virtio-net.c
@@ -219,6 +219,14 @@ static void virtio_net_set_features(VirtIODevice *vdev, uint32_t features)
(features >> VIRTIO_NET_F_GUEST_ECN) & 1,
(features >> VIRTIO_NET_F_GUEST_UFO) & 1);
}
+ if (!n->nic->nc.peer ||
+ n->nic->nc.peer->info->type != NET_CLIENT_TYPE_TAP) {
+ return;
+ }
+ if (!tap_get_vhost_net(n->nic->nc.peer)) {
+ return;
+ }
+ return vhost_net_ack_features(tap_get_vhost_net(n->nic->nc.peer), features);
}
static int virtio_net_handle_rx_mode(VirtIONet *n, uint8_t cmd,