[dpdk-stable] patch 'vhost: fix double read of descriptor flags' has been queued to stable release 18.11.1

Kevin Traynor ktraynor at redhat.com
Fri Dec 14 19:24:27 CET 2018


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 <i.maximets at samsung.com>
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 <i.maximets at samsung.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>
---
 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 <i.maximets at samsung.com>
 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 at dpdk.org
 
 Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
 Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>


More information about the stable mailing list