summaryrefslogtreecommitdiffstats
path: root/hw
diff options
context:
space:
mode:
authorJason Wang2021-06-02 05:31:26 +0200
committerJason Wang2021-06-11 04:30:13 +0200
commitc33f23a419f95da16ab4faaf08be635c89b96ff0 (patch)
tree291d3e4843c39af6d0916c3bcad4c9d0cbdc5afe /hw
parentvhost-vdpa: map virtqueue notification area if possible (diff)
downloadqemu-c33f23a419f95da16ab4faaf08be635c89b96ff0.tar.gz
qemu-c33f23a419f95da16ab4faaf08be635c89b96ff0.tar.xz
qemu-c33f23a419f95da16ab4faaf08be635c89b96ff0.zip
vhost-vdpa: don't initialize backend_features
We used to initialize backend_features during vhost_vdpa_init() regardless whether or not it was supported by vhost. This will lead the unsupported features like VIRTIO_F_IN_ORDER to be included and set to the vhost-vdpa during vhost_dev_start. Because the VIRTIO_F_IN_ORDER is not supported by vhost-vdpa so it won't be advertised to guest which will break the datapath. Fix this by not initializing the backend_features, so the acked_features could be built only from guest features via vhost_net_ack_features(). Fixes: 108a64818e69b ("vhost-vdpa: introduce vhost-vdpa backend") Cc: qemu-stable@nongnu.org Cc: Gautam Dawar <gdawar@xilinx.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/virtio/vhost-vdpa.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index 7bcccf10fc..61ba313331 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio/vhost-vdpa.c
@@ -268,15 +268,12 @@ static void vhost_vdpa_add_status(struct vhost_dev *dev, uint8_t status)
static int vhost_vdpa_init(struct vhost_dev *dev, void *opaque)
{
struct vhost_vdpa *v;
- uint64_t features;
assert(dev->vhost_ops->backend_type == VHOST_BACKEND_TYPE_VDPA);
trace_vhost_vdpa_init(dev, opaque);
v = opaque;
v->dev = dev;
dev->opaque = opaque ;
- vhost_vdpa_call(dev, VHOST_GET_FEATURES, &features);
- dev->backend_features = features;
v->listener = vhost_vdpa_memory_listener;
v->msg_type = VHOST_IOTLB_MSG_V2;