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

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