diff options
author | Damjan Marion <damarion@cisco.com> | 2014-09-11 14:55:48 -0700 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2014-09-18 21:51:24 +0300 |
commit | d8e80ae37a7acfea416ad9abbe76b453a73d9cc0 (patch) | |
tree | 242808ff8401bce41c318c544b72738cd2b0d159 | |
parent | e43c0b2ea5574efb0bedebf6a7d05916eefeba52 (diff) | |
download | qemu-d8e80ae37a7acfea416ad9abbe76b453a73d9cc0.zip |
vhost-user: fix VIRTIO_NET_F_MRG_RXBUF negotiation
Header length check should happen only if backend is kernel. For user
backend there is no reason to reset this bit.
vhost-user code does not define .has_vnet_hdr_len so
VIRTIO_NET_F_MRG_RXBUF cannot be negotiated even if both sides
support it.
Signed-off-by: Damjan Marion <damarion@cisco.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r-- | hw/net/vhost_net.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index b21e7a434f..77bb93e4d7 100644 --- a/hw/net/vhost_net.c +++ b/hw/net/vhost_net.c @@ -163,11 +163,11 @@ struct vhost_net *vhost_net_init(VhostNetOptions *options) if (r < 0) { goto fail; } - if (!qemu_has_vnet_hdr_len(options->net_backend, - sizeof(struct virtio_net_hdr_mrg_rxbuf))) { - net->dev.features &= ~(1 << VIRTIO_NET_F_MRG_RXBUF); - } if (backend_kernel) { + if (!qemu_has_vnet_hdr_len(options->net_backend, + sizeof(struct virtio_net_hdr_mrg_rxbuf))) { + net->dev.features &= ~(1 << VIRTIO_NET_F_MRG_RXBUF); + } if (~net->dev.features & net->dev.backend_features) { fprintf(stderr, "vhost lacks feature mask %" PRIu64 " for backend\n", |