summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMaxime Coquelin <maxime.coquelin@redhat.com>2018-10-12 14:40:31 +0200
committerFerruh Yigit <ferruh.yigit@intel.com>2018-10-18 10:24:39 +0200
commit7987eb1bc7e28884ac91942d7ad9e51bde15cebd (patch)
tree0532782073caf718783f8cf84cf92fad01f7708d /lib
parentef6fb7d3fd9690a74d40e35f98457171a8319c6a (diff)
downloaddpdk-7987eb1bc7e28884ac91942d7ad9e51bde15cebd.zip
dpdk-7987eb1bc7e28884ac91942d7ad9e51bde15cebd.tar.gz
dpdk-7987eb1bc7e28884ac91942d7ad9e51bde15cebd.tar.xz
vhost: clarify reply-ack in case a reply was already sent
For messages that require a reply, a second ack should not be sent when reply-ack protocol feature is negotiated, even if the corresponding flag is set in the message. The code is compliant with the spec but it isn't clear it is, so this patch adds a comment to make it explicit. Suggested-by: Ilya Maximets <i.maximets@samsung.com> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Ilya Maximets <i.maximets@samsung.com> Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/librte_vhost/vhost_user.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
index 09a90a2..a772999 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -1783,6 +1783,11 @@ skip_to_reply:
if (unlock_required)
vhost_user_unlock_all_queue_pairs(dev);
+ /*
+ * If the request required a reply that was already sent,
+ * this optional reply-ack won't be sent as the
+ * VHOST_USER_NEED_REPLY was cleared in send_vhost_reply().
+ */
if (msg.flags & VHOST_USER_NEED_REPLY) {
msg.payload.u64 = ret == VH_RESULT_ERR;
msg.size = sizeof(msg.payload.u64);