[dpdk-dev] [PATCH 1/3] vhost: Fix return value of GET_VRING_BASE message

Tetsuya Mukawa mukawa at igel.co.jp
Wed Aug 19 11:51:07 CEST 2015


When vhost-user frontend sends GET_VRING_BASE, last used index of vring
should be returned. In DPDK vhost library, 'last_used_idx' represents it.
But the value can be over max index value. To return correct value to
vhost frontend, it's needed to be masked.

Signed-off-by: Tetsuya Mukawa <mukawa at igel.co.jp>
---
 lib/librte_vhost/virtio-net.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/librte_vhost/virtio-net.c b/lib/librte_vhost/virtio-net.c
index b520ec5..144f301 100644
--- a/lib/librte_vhost/virtio-net.c
+++ b/lib/librte_vhost/virtio-net.c
@@ -661,7 +661,8 @@ get_vring_base(struct vhost_device_ctx ctx, uint32_t index,
 
 	state->index = index;
 	/* State->index refers to the queue index. The txq is 1, rxq is 0. */
-	state->num = dev->virtqueue[state->index]->last_used_idx;
+	state->num = dev->virtqueue[state->index]->last_used_idx
+			& (dev->virtqueue[state->index]->size - 1);
 
 	return 0;
 }
-- 
2.1.4



More information about the dev mailing list