From: Jiayu Hu Date: Wed, 25 Jul 2018 08:21:42 +0000 (+0800) Subject: vhost: fix return value on dequeue path X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=6e2fad861a6dd80d8dafe71ae14f87a30add7366;p=dpdk.git vhost: fix return value on dequeue path This patch fixes the incorrect return value for rte_vhost_dequeue_burst() when virtqueue is not enabled or virtqueue address translation fails. Fixes: 62250c1d0978 ("vhost: extract split ring handling from Rx and Tx functions") Signed-off-by: Jiayu Hu Reviewed-by: Jens Freimann Acked-by: Tiwei Bie --- diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c index 07cc0c8458..a8b4c961cc 100644 --- a/lib/librte_vhost/virtio_net.c +++ b/lib/librte_vhost/virtio_net.c @@ -1594,15 +1594,19 @@ rte_vhost_dequeue_burst(int vid, uint16_t queue_id, if (unlikely(rte_spinlock_trylock(&vq->access_lock) == 0)) return 0; - if (unlikely(vq->enabled == 0)) + if (unlikely(vq->enabled == 0)) { + count = 0; goto out_access_unlock; + } if (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM)) vhost_user_iotlb_rd_lock(vq); if (unlikely(vq->access_ok == 0)) - if (unlikely(vring_translate(dev, vq) < 0)) + if (unlikely(vring_translate(dev, vq) < 0)) { + count = 0; goto out; + } /* * Construct a RARP broadcast packet, and inject it to the "pkts"