This fixes the problem where driver would not start if only
have a single Rx queue and multiple Txq. In that case, RSS
should stay disabled.

Fixes: 92d23a57cafe ("net/netvsc: support configuring RSS parameters")
Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
---
 drivers/net/netvsc/hn_ethdev.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c
index 60102362e124..55b8a63804a9 100644
--- a/drivers/net/netvsc/hn_ethdev.c
+++ b/drivers/net/netvsc/hn_ethdev.c
@@ -376,14 +376,15 @@ static int hn_rss_hash_update(struct rte_eth_dev *dev,
 
        hn_rss_hash_init(hv, rss_conf);
 
-       err = hn_rndis_conf_rss(hv, 0);
-       if (err) {
-               PMD_DRV_LOG(NOTICE,
-                           "rss reconfig failed (RSS disabled)");
-               return err;
+       if (rss_conf->rss_hf != 0) {
+               err = hn_rndis_conf_rss(hv, 0);
+               if (err) {
+                       PMD_DRV_LOG(NOTICE,
+                                   "rss reconfig failed (RSS disabled)");
+                       return err;
+               }
        }
 
-
        return hn_vf_rss_hash_update(dev, rss_conf);
 }
 
@@ -595,11 +596,13 @@ static int hn_dev_configure(struct rte_eth_dev *dev)
                        return err;
                }
 
-               err = hn_rndis_conf_rss(hv, 0);
-               if (err) {
-                       PMD_DRV_LOG(NOTICE,
-                                   "initial RSS config failed");
-                       return err;
+               if (rss_conf->rss_hf != 0) {
+                       err = hn_rndis_conf_rss(hv, 0);
+                       if (err) {
+                               PMD_DRV_LOG(NOTICE,
+                                           "initial RSS config failed");
+                               return err;
+                       }
                }
        }
 
-- 
2.20.1

Reply via email to