Blame SOURCES/0003-net-netvsc-disable-multi-queue-on-older-servers.patch

9e1a2a
From 0598625d2e17374b7d5693972f5acb59fef25f63 Mon Sep 17 00:00:00 2001
9e1a2a
From: Stephen Hemminger <sthemmin@microsoft.com>
9e1a2a
Date: Wed, 5 Dec 2018 14:11:58 -0800
9e1a2a
Subject: [PATCH 3/3] net/netvsc: disable multi-queue on older servers
9e1a2a
9e1a2a
[ upstream commit afbc22bf51ab98b9b61b11eb6d38278a9d577111 ]
9e1a2a
9e1a2a
NDIS multi-queue support is only in WS2012 or later. Check the NDIS
9e1a2a
version to limit to single queue on older versions. Similar code
9e1a2a
exists in Linux driver.
9e1a2a
9e1a2a
Fixes: 4e9c73e96e83 ("net/netvsc: add Hyper-V network device")
9e1a2a
9e1a2a
Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
9e1a2a
(cherry picked from commit d387b7ae45a520970ff55ea6ce75b48d5e69c4d9)
9e1a2a
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
9e1a2a
---
9e1a2a
 drivers/net/netvsc/hn_ethdev.c | 5 +++++
9e1a2a
 1 file changed, 5 insertions(+)
9e1a2a
9e1a2a
diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c
9e1a2a
index b330bf3d7..1256fa399 100644
9e1a2a
--- a/drivers/net/netvsc/hn_ethdev.c
9e1a2a
+++ b/drivers/net/netvsc/hn_ethdev.c
9e1a2a
@@ -732,6 +732,7 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev)
9e1a2a
 	hv->chim_res  = &vmbus->resource[HV_SEND_BUF_MAP];
9e1a2a
 	hv->port_id = eth_dev->data->port_id;
9e1a2a
 	hv->latency = HN_CHAN_LATENCY_NS;
9e1a2a
+	hv->max_queues = 1;
9e1a2a
 
9e1a2a
 	err = hn_parse_args(eth_dev);
9e1a2a
 	if (err)
9e1a2a
@@ -770,6 +771,10 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev)
9e1a2a
 	if (err)
9e1a2a
 		goto failed;
9e1a2a
 
9e1a2a
+	/* Multi queue requires later versions of windows server */
9e1a2a
+	if (hv->nvs_ver < NVS_VERSION_5)
9e1a2a
+		return 0;
9e1a2a
+
9e1a2a
 	max_chan = rte_vmbus_max_channels(vmbus);
9e1a2a
 	PMD_INIT_LOG(DEBUG, "VMBus max channels %d", max_chan);
9e1a2a
 	if (max_chan <= 0)
9e1a2a
-- 
9e1a2a
2.20.1
9e1a2a