[dpdk-stable] patch 'bus/vmbus: fix race in subchannel creation' has been queued to LTS release 18.11.1

Kevin Traynor ktraynor at redhat.com
Fri Jan 4 14:23:46 CET 2019


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 59573b60e2f8ff6ce07dacb023c8645266d8eadf Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <sthemmin at microsoft.com>
Date: Wed, 5 Dec 2018 14:11:56 -0800
Subject: [PATCH] bus/vmbus: fix race in subchannel creation

[ upstream commit 4970103e89f4f828669acf3b465e984fdc891e1e ]

When using multiple queues, there was a race with the kernel
in setting up the second channel. This regression is due to a kernel change
which does not allow accessing sysfs files for Hyper-V channels that are not opened.

The fix is simple, just move the logic to detect not ready
sub channels earlier in the existing loop.

Fixes: 831dba47bd36 ("bus/vmbus: add Hyper-V virtual bus support")

Reported-by: Mohammed Gamal <mgamal at redhat.com>
Signed-off-by: Stephen Hemminger <sthemmin at microsoft.com>
---
 drivers/bus/vmbus/linux/vmbus_uio.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/bus/vmbus/linux/vmbus_uio.c b/drivers/bus/vmbus/linux/vmbus_uio.c
index 12e97e3a4..38df4d724 100644
--- a/drivers/bus/vmbus/linux/vmbus_uio.c
+++ b/drivers/bus/vmbus/linux/vmbus_uio.c
@@ -358,4 +358,10 @@ int vmbus_uio_get_subchan(struct vmbus_channel *primary,
 		}
 
+		if (!vmbus_isnew_subchannel(primary, relid))
+			continue;	/* Already know about you */
+
+		if (!vmbus_uio_ring_present(dev, relid))
+			continue;	/* Ring may not be ready yet */
+
 		snprintf(subchan_path, sizeof(subchan_path), "%s/%lu",
 			 chan_path, relid);
@@ -371,10 +377,4 @@ int vmbus_uio_get_subchan(struct vmbus_channel *primary,
 			continue;	/* skip primary channel */
 
-		if (!vmbus_isnew_subchannel(primary, relid))
-			continue;
-
-		if (!vmbus_uio_ring_present(dev, relid))
-			continue;	/* Ring may not be ready yet */
-
 		err = vmbus_uio_sysfs_read(subchan_path, "monitor_id",
 					   &monid, UINT8_MAX);
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-01-04 13:23:07.556190007 +0000
+++ 0004-bus-vmbus-fix-race-in-subchannel-creation.patch	2019-01-04 13:23:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 4970103e89f4f828669acf3b465e984fdc891e1e Mon Sep 17 00:00:00 2001
+From 59573b60e2f8ff6ce07dacb023c8645266d8eadf Mon Sep 17 00:00:00 2001
 From: Stephen Hemminger <sthemmin at microsoft.com>
 Date: Wed, 5 Dec 2018 14:11:56 -0800
 Subject: [PATCH] bus/vmbus: fix race in subchannel creation
 
+[ upstream commit 4970103e89f4f828669acf3b465e984fdc891e1e ]
+
 When using multiple queues, there was a race with the kernel
 in setting up the second channel. This regression is due to a kernel change
 which does not allow accessing sysfs files for Hyper-V channels that are not opened.
@@ -11,7 +13,6 @@
 sub channels earlier in the existing loop.
 
 Fixes: 831dba47bd36 ("bus/vmbus: add Hyper-V virtual bus support")
-Cc: stable at dpdk.org
 
 Reported-by: Mohammed Gamal <mgamal at redhat.com>
 Signed-off-by: Stephen Hemminger <sthemmin at microsoft.com>


More information about the stable mailing list