net/iavf: fix VIRTHCNL_OP_SET_RSS_HENA handling

Message ID 20210118081506.107794-1-xuan.ding@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Qi Zhang
Headers
Series net/iavf: fix VIRTHCNL_OP_SET_RSS_HENA handling |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation fail Compilation issues

Commit Message

Ding, Xuan Jan. 18, 2021, 8:15 a.m. UTC
  Allow error to be returned for VIRTCHNL_OP_SET_RSS_HENA when set
hena = 0. Add warning that PF doesnot support hena = 0 now.

Fixes: 95f2f0e9fc2a6("net/iavf: improve default RSS")
Cc: stable@dpdk.org

Signed-off-by: Xuan Ding <xuan.ding@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)
  

Patch

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index e22c62ed00..46857875ea 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -1250,11 +1250,15 @@  iavf_dev_rss_hash_update(struct rte_eth_dev *dev,
 	if (rss_conf->rss_hf == 0)
 		return 0;
 
-	/* Overwritten default RSS. */
+	/* Clear existing RSS. */
 	ret = iavf_set_hena(adapter, 0);
+
+	/* It is a workaround, temporarily allow error to be returned
+	 * due to possible lack of PF handling for hena = 0.
+	 */
 	if (ret)
-		PMD_DRV_LOG(ERR, "%s Remove rss vsi fail %d",
-			    __func__, ret);
+		PMD_DRV_LOG(WARNING, "fail to clean existing RSS,"
+			    "lack PF support");
 
 	/* Set new RSS configuration. */
 	ret = iavf_rss_hash_set(adapter, rss_conf->rss_hf, true);
@@ -2174,10 +2178,12 @@  iavf_dev_init(struct rte_eth_dev *eth_dev)
 
 	/* Set hena = 0 to ask PF to cleanup all existing RSS. */
 	ret = iavf_set_hena(adapter, 0);
-	if (ret) {
-		PMD_DRV_LOG(ERR, "fail to disable default PF RSS");
-		return ret;
-	}
+	if (ret)
+		/* It is a workaround, temporarily allow error to be returned
+		 * due to possible lack of PF handling for hena = 0.
+		 */
+		PMD_DRV_LOG(WARNING, "fail to disable default RSS,"
+			    "lack PF support");
 
 	return 0;
 }