[dpdk-dev] [PATCH] vhost: fix return value

Jiayu Hu jiayu.hu at intel.com
Wed Jul 25 10:21:42 CEST 2018


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 <jiayu.hu at intel.com>
---
 lib/librte_vhost/virtio_net.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c
index 2b7ffcf..5d4b975 100644
--- a/lib/librte_vhost/virtio_net.c
+++ b/lib/librte_vhost/virtio_net.c
@@ -1592,15 +1592,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"
-- 
2.7.4



More information about the dev mailing list