> > > > > On 04/27/2018 04:19 PM, Ciara Loftus wrote: > > > rte_eth_vhost_get_vid_from_port_id returns a value of 0 if called before > > > the first call to the new_device callback. A vid value >=0 suggests the > > > device is active which is not the case in this instance. Initialise vid > > > to a negative value to prevent this. > > > > > > Signed-off-by: Ciara Loftus <ciara.lof...@intel.com> > > > --- > > > drivers/net/vhost/rte_eth_vhost.c | 1 + > > > 1 file changed, 1 insertion(+) > > > > > > diff --git a/drivers/net/vhost/rte_eth_vhost.c > > b/drivers/net/vhost/rte_eth_vhost.c > > > index 99a7727..f47950c 100644 > > > --- a/drivers/net/vhost/rte_eth_vhost.c > > > +++ b/drivers/net/vhost/rte_eth_vhost.c > > > @@ -1051,6 +1051,7 @@ eth_rx_queue_setup(struct rte_eth_dev *dev, > > uint16_t rx_queue_id, > > > return -ENOMEM; > > > } > > > > > > + vq->vid = -1; > > > vq->mb_pool = mb_pool; > > > vq->virtqueue_id = rx_queue_id * VIRTIO_QNUM + VIRTIO_TXQ; > > > dev->data->rx_queues[rx_queue_id] = vq; > > > > > > > Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com> > > > > Thanks, > > Maxime > > On second thoughts, self-NACK. > > We need to provision for the case where we want to call > eth_rx_queue_setup AFTER new_device. For instance when we want to > change the mb_pool. In this case we need to maintain the same vid and not > reset it to -1. > > Without this patch the original problem still exists and need to find an > alternative workaround.
Junjie's patches fix the issue I was observing. Thanks Junjie! https://dpdk.org/browse/dpdk/commit/?id=30a701a53737a0b6f7953412cc3b3d36c1d49122 https://dpdk.org/browse/dpdk/commit/?id=e6722dee533cda3756fbc5c9ea4ddfbf30276f1b Along with the v2 of this patch could they be considered for the 17.11 stable branch? Thanks, Ciara > > Thanks, > Ciara