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

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