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 3F1551B921 for ; Fri, 14 Dec 2018 19:25:53 +0100 (CET) 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 A24349FDCF; Fri, 14 Dec 2018 18:25:52 +0000 (UTC) Received: from ktraynor.remote.csb (ovpn-116-106.ams2.redhat.com [10.36.116.106]) by smtp.corp.redhat.com (Postfix) with ESMTP id 90094600C0; Fri, 14 Dec 2018 18:25:51 +0000 (UTC) From: Kevin Traynor To: Ilya Maximets Cc: Maxime Coquelin , dpdk stable Date: Fri, 14 Dec 2018 18:24:27 +0000 Message-Id: <20181214182430.11593-25-ktraynor@redhat.com> In-Reply-To: <20181214182430.11593-1-ktraynor@redhat.com> References: <20181214182430.11593-1-ktraynor@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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.39]); Fri, 14 Dec 2018 18:25:52 +0000 (UTC) Subject: [dpdk-stable] patch 'vhost: fix double read of descriptor flags' has been queued to stable 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, 14 Dec 2018 18:25:53 -0000 Hi, FYI, your patch has been queued to stable 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 12/18/18. 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 4b167b67e691141ad3da5f5aade09eb83c49935d Mon Sep 17 00:00:00 2001 From: Ilya Maximets Date: Wed, 5 Dec 2018 18:09:26 +0300 Subject: [PATCH] vhost: fix double read of descriptor flags [ upstream commit 48cae0bfa60c451c5d9c0d5be932300aadc7e676 ] Flags could be updated in a separate process leading to the inconsistent check. Additionally, read marked as 'volatile' to highlight the shared nature of the variable and avoid such issues in the future. Fixes: d3211c98c456 ("vhost: add helpers for packed virtqueues") Signed-off-by: Ilya Maximets Reviewed-by: Maxime Coquelin --- lib/librte_vhost/vhost.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h index 5218f1b12..552b9298d 100644 --- a/lib/librte_vhost/vhost.h +++ b/lib/librte_vhost/vhost.h @@ -394,6 +394,8 @@ static inline bool desc_is_avail(struct vring_packed_desc *desc, bool wrap_counter) { - return wrap_counter == !!(desc->flags & VRING_DESC_F_AVAIL) && - wrap_counter != !!(desc->flags & VRING_DESC_F_USED); + uint16_t flags = *((volatile uint16_t *) &desc->flags); + + return wrap_counter == !!(flags & VRING_DESC_F_AVAIL) && + wrap_counter != !!(flags & VRING_DESC_F_USED); } -- 2.19.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2018-12-14 18:23:18.956122299 +0000 +++ 0025-vhost-fix-double-read-of-descriptor-flags.patch 2018-12-14 18:23:18.000000000 +0000 @@ -1,8 +1,10 @@ -From 48cae0bfa60c451c5d9c0d5be932300aadc7e676 Mon Sep 17 00:00:00 2001 +From 4b167b67e691141ad3da5f5aade09eb83c49935d Mon Sep 17 00:00:00 2001 From: Ilya Maximets Date: Wed, 5 Dec 2018 18:09:26 +0300 Subject: [PATCH] vhost: fix double read of descriptor flags +[ upstream commit 48cae0bfa60c451c5d9c0d5be932300aadc7e676 ] + Flags could be updated in a separate process leading to the inconsistent check. @@ -10,7 +12,6 @@ nature of the variable and avoid such issues in the future. Fixes: d3211c98c456 ("vhost: add helpers for packed virtqueues") -Cc: stable@dpdk.org Signed-off-by: Ilya Maximets Reviewed-by: Maxime Coquelin