[07/16] net/hns3: separate the setting of hash key

Message ID 20230310093518.5198-8-liudongdong3@huawei.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/hns3: some code refactor for hns3 RSS |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Dongdong Liu March 10, 2023, 9:35 a.m. UTC
From: Huisong Li <lihuisong@huawei.com>

The settings of hash key comes from the ethdev ops (like, dev_configure
and rss_hash_update) and rte_flow API. For the ethdev ops, driver has
to save it to rss_info::key in hns3_hw structure so as to it can be
restored when reset is triggered. While rte_flow API no need to use
this field to save, they has a global flow_rss_list to maintain all
rules which save hash key. And hash key can be restored by this rule
information during the reset phase.

Cc: stable@dpdk.org

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_rss.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
  

Patch

diff --git a/drivers/net/hns3/hns3_rss.c b/drivers/net/hns3/hns3_rss.c
index 88ba0757b5..be717b7641 100644
--- a/drivers/net/hns3/hns3_rss.c
+++ b/drivers/net/hns3/hns3_rss.c
@@ -376,8 +376,7 @@  hns3_rss_set_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
 			return ret;
 		}
 	}
-	/* Update the shadow RSS key with user specified */
-	memcpy(hw->rss_info.key, key, hw->rss_key_size);
+
 	return 0;
 }
 
@@ -671,6 +670,8 @@  hns3_dev_rss_hash_update(struct rte_eth_dev *dev,
 					    key, hw->rss_key_size);
 		if (ret)
 			goto set_algo_key_fail;
+		/* Update the shadow RSS key with user specified */
+		memcpy(hw->rss_info.key, key, hw->rss_key_size);
 	}
 	rte_spinlock_unlock(&hw->lock);