From patchwork Thu Oct 11 09:24:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxime Coquelin X-Patchwork-Id: 46546 X-Patchwork-Delegate: maxime.coquelin@redhat.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 18DC31B16F; Thu, 11 Oct 2018 11:24:58 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 37B0F5F19; Thu, 11 Oct 2018 11:24:56 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 84D193004424; Thu, 11 Oct 2018 09:24:55 +0000 (UTC) Received: from localhost.localdomain (ovpn-112-55.ams2.redhat.com [10.36.112.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id E4DAE60472; Thu, 11 Oct 2018 09:24:51 +0000 (UTC) From: Maxime Coquelin To: dev@dpdk.org, tiwei.bie@intel.com, zhihong.wang@intel.com, jfreimann@redhat.com, nicknickolaev@gmail.com, i.maximets@samsung.com, bruce.richardson@intel.com, alejandro.lucero@netronome.com Cc: dgilbert@redhat.com, stable@dpdk.org, Maxime Coquelin Date: Thu, 11 Oct 2018 11:24:16 +0200 Message-Id: <20181011092432.22275-4-maxime.coquelin@redhat.com> In-Reply-To: <20181011092432.22275-1-maxime.coquelin@redhat.com> References: <20181011092432.22275-1-maxime.coquelin@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Thu, 11 Oct 2018 09:24:55 +0000 (UTC) Subject: [dpdk-dev] [PATCH v6 03/19] vhost: clarify reply-ack in case a reply was already sent X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 Signed-off-by: Maxime Coquelin Acked-by: Ilya Maximets Reviewed-by: Tiwei Bie --- lib/librte_vhost/vhost_user.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c index 09a90a20b..a7729990d 100644 --- a/lib/librte_vhost/vhost_user.c +++ b/lib/librte_vhost/vhost_user.c @@ -1783,6 +1783,11 @@ vhost_user_msg_handler(int vid, int fd) 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);