From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiao Wang Subject: [PATCH] vhost: fix vDPA set features Date: Wed, 25 Apr 2018 10:18:27 +0800 Message-ID: <20180425021827.28240-1-xiao.w.wang@intel.com> Cc: jianfeng.tan@intel.com, zhihong.wang@intel.com, dev@dpdk.org, Xiao Wang To: maxime.coquelin@redhat.com Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id D7B9E2B92 for ; Wed, 25 Apr 2018 04:18:42 +0200 (CEST) List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" We should call set_features callback after setting features in virtio_net structure, otherwise vDPA driver cannot get the right features. Fixes: 07718b4f87aa ("vhost: adapt library for selective datapath") Signed-off-by: Xiao Wang --- lib/librte_vhost/vhost_user.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c index 90194bf09..7244e1c06 100644 --- a/lib/librte_vhost/vhost_user.c +++ b/lib/librte_vhost/vhost_user.c @@ -214,11 +214,6 @@ vhost_user_set_features(struct virtio_net *dev, uint64_t features) dev->notify_ops->features_changed(dev->vid, features); } - did = dev->vdpa_dev_id; - vdpa_dev = rte_vdpa_get_device(did); - if (vdpa_dev && vdpa_dev->ops->set_features) - vdpa_dev->ops->set_features(dev->vid); - dev->features = features; if (dev->features & ((1 << VIRTIO_NET_F_MRG_RXBUF) | (1ULL << VIRTIO_F_VERSION_1))) { @@ -252,6 +247,11 @@ vhost_user_set_features(struct virtio_net *dev, uint64_t features) } } + did = dev->vdpa_dev_id; + vdpa_dev = rte_vdpa_get_device(did); + if (vdpa_dev && vdpa_dev->ops->set_features) + vdpa_dev->ops->set_features(dev->vid); + return 0; } -- 2.15.1