From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id BD1ED1B494 for ; Fri, 4 Jan 2019 14:28:34 +0100 (CET) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2EBB765855; Fri, 4 Jan 2019 13:28:34 +0000 (UTC) Received: from ktraynor.remote.csb (ovpn-117-13.ams2.redhat.com [10.36.117.13]) by smtp.corp.redhat.com (Postfix) with ESMTP id C3F585C1A1; Fri, 4 Jan 2019 13:28:31 +0000 (UTC) From: Kevin Traynor To: Maxime Coquelin Cc: Jason Wang , Ilya Maximets , "Michael S . Tsirkin" , Tiwei Bie , dpdk stable Date: Fri, 4 Jan 2019 13:24:48 +0000 Message-Id: <20190104132455.15170-66-ktraynor@redhat.com> In-Reply-To: <20190104132455.15170-1-ktraynor@redhat.com> References: <20190104132455.15170-1-ktraynor@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Fri, 04 Jan 2019 13:28:34 +0000 (UTC) Subject: [dpdk-stable] patch 'vhost: enforce desc flags and content read ordering' has been queued to LTS release 18.11.1 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Jan 2019 13:28:35 -0000 Hi, FYI, your patch has been queued to LTS release 18.11.1 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 01/11/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Thanks. Kevin Traynor --- >>From 2c4f729dc4f13640432e61a28a94f2ac053fed8e Mon Sep 17 00:00:00 2001 From: Maxime Coquelin Date: Wed, 19 Dec 2018 09:21:11 +0100 Subject: [PATCH] vhost: enforce desc flags and content read ordering [ upstream commit 33e12d63d156b99aed2733e6aae97d53931e8e43 ] A read barrier is required to ensure that the ordering between descriptor's flags and content reads is enforced. 1. read flags = desc->flags if (flags & AVAIL_BIT) 2. read desc->id There is a control dependency between steps 1 and step 2. 2 could be speculatively executed before 1, which could result in 'id' to not be updated yet. Fixes: 2f3225a7d69b ("vhost: add vector filling support for packed ring") Reported-by: Jason Wang Signed-off-by: Maxime Coquelin Acked-by: Ilya Maximets Acked-by: Michael S. Tsirkin Acked-by: Tiwei Bie --- lib/librte_vhost/virtio_net.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c index f11ebb54f..68b72e7a5 100644 --- a/lib/librte_vhost/virtio_net.c +++ b/lib/librte_vhost/virtio_net.c @@ -521,4 +521,10 @@ fill_vec_buf_packed(struct virtio_net *dev, struct vhost_virtqueue *vq, return -1; + /* + * The ordering between desc flags and desc + * content reads need to be enforced. + */ + rte_smp_rmb(); + *desc_count = 0; *len = 0; -- 2.19.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-01-04 13:23:09.053967513 +0000 +++ 0066-vhost-enforce-desc-flags-and-content-read-ordering.patch 2019-01-04 13:23:07.000000000 +0000 @@ -1,8 +1,10 @@ -From 33e12d63d156b99aed2733e6aae97d53931e8e43 Mon Sep 17 00:00:00 2001 +From 2c4f729dc4f13640432e61a28a94f2ac053fed8e Mon Sep 17 00:00:00 2001 From: Maxime Coquelin Date: Wed, 19 Dec 2018 09:21:11 +0100 Subject: [PATCH] vhost: enforce desc flags and content read ordering +[ upstream commit 33e12d63d156b99aed2733e6aae97d53931e8e43 ] + A read barrier is required to ensure that the ordering between descriptor's flags and content reads is enforced. @@ -15,7 +17,6 @@ in 'id' to not be updated yet. Fixes: 2f3225a7d69b ("vhost: add vector filling support for packed ring") -Cc: stable@dpdk.org Reported-by: Jason Wang Signed-off-by: Maxime Coquelin @@ -27,10 +28,10 @@ 1 file changed, 6 insertions(+) diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c -index 7f37bbbed..a9b1bc55f 100644 +index f11ebb54f..68b72e7a5 100644 --- a/lib/librte_vhost/virtio_net.c +++ b/lib/librte_vhost/virtio_net.c -@@ -482,4 +482,10 @@ fill_vec_buf_packed(struct virtio_net *dev, struct vhost_virtqueue *vq, +@@ -521,4 +521,10 @@ fill_vec_buf_packed(struct virtio_net *dev, struct vhost_virtqueue *vq, return -1; + /*