patch 'net/hns3: fix restore filter function input' has been queued to stable release 20.11.7

luca.boccassi at gmail.com luca.boccassi at gmail.com
Thu Nov 3 10:27:39 CET 2022


Hi,

FYI, your patch has been queued to stable release 20.11.7

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/05/22. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/4bd8b93920d55c80804c5d017897772ee880ee87

Thanks.

Luca Boccassi

---
>From 4bd8b93920d55c80804c5d017897772ee880ee87 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong at huawei.com>
Date: Fri, 30 Sep 2022 15:22:07 +0800
Subject: [PATCH] net/hns3: fix restore filter function input

[ upstream commit 1042ed401f3d19efb499ef832eb3c48f77dac13f ]

This 'hns3_restore_filter' is an internal interface of driver.
Currently, it uses 'struct rte_eth_dev *dev' as input parameter,
This is inconvenient for the function to call in driver because
caller has to obtain its device address by global variable
'rte_eth_devices[]'. Fix the input of this function.

Fixes: 920be799dbc3 ("net/hns3: fix RSS indirection table configuration")

Signed-off-by: Huisong Li <lihuisong at huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3 at huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c    |  3 +--
 drivers/net/hns3/hns3_ethdev_vf.c |  3 +--
 drivers/net/hns3/hns3_flow.c      | 30 ++++++++++++------------------
 drivers/net/hns3/hns3_rss.h       |  2 +-
 4 files changed, 15 insertions(+), 23 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 33b10539e0..500de265c4 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -4890,7 +4890,6 @@ static int
 hns3_do_start(struct hns3_adapter *hns, bool reset_queue)
 {
 	struct hns3_hw *hw = &hns->hw;
-	struct rte_eth_dev *dev = &rte_eth_devices[hw->data->port_id];
 	int ret;
 
 	ret = hns3_update_queue_map_configure(hns);
@@ -4911,7 +4910,7 @@ hns3_do_start(struct hns3_adapter *hns, bool reset_queue)
 		PMD_INIT_LOG(ERR, "failed to enable MAC, ret = %d", ret);
 		goto err_config_mac_mode;
 	}
-	return hns3_restore_filter(dev);
+	return hns3_restore_filter(hns);
 
 err_config_mac_mode:
 	hns3_dev_release_mbufs(hns);
diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index d8739da89a..17dbf48576 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -2085,7 +2085,6 @@ static int
 hns3vf_do_start(struct hns3_adapter *hns, bool reset_queue)
 {
 	struct hns3_hw *hw = &hns->hw;
-	struct rte_eth_dev *dev = &rte_eth_devices[hw->data->port_id];
 	uint16_t nb_rx_q = hw->data->nb_rx_queues;
 	uint16_t nb_tx_q = hw->data->nb_tx_queues;
 	int ret;
@@ -2098,7 +2097,7 @@ hns3vf_do_start(struct hns3_adapter *hns, bool reset_queue)
 	if (ret)
 		hns3_err(hw, "failed to init queues, ret = %d.", ret);
 
-	return hns3_restore_filter(dev);
+	return hns3_restore_filter(hns);
 }
 
 static int
diff --git a/drivers/net/hns3/hns3_flow.c b/drivers/net/hns3/hns3_flow.c
index ffdd131d15..b1317d7311 100644
--- a/drivers/net/hns3/hns3_flow.c
+++ b/drivers/net/hns3/hns3_flow.c
@@ -1476,11 +1476,9 @@ hns3_hw_rss_hash_set(struct hns3_hw *hw, struct rte_flow_action_rss *rss_config)
 }
 
 static int
-hns3_update_indir_table(struct rte_eth_dev *dev,
+hns3_update_indir_table(struct hns3_hw *hw,
 			const struct rte_flow_action_rss *conf, uint16_t num)
 {
-	struct hns3_adapter *hns = dev->data->dev_private;
-	struct hns3_hw *hw = &hns->hw;
 	uint16_t indir_tbl[HNS3_RSS_IND_TBL_SIZE_MAX];
 	uint16_t j;
 	uint32_t i;
@@ -1503,12 +1501,10 @@ hns3_update_indir_table(struct rte_eth_dev *dev,
 }
 
 static int
-hns3_config_rss_filter(struct rte_eth_dev *dev,
+hns3_config_rss_filter(struct hns3_hw *hw,
 		       const struct hns3_rss_conf *conf, bool add)
 {
-	struct hns3_adapter *hns = dev->data->dev_private;
 	struct hns3_rss_conf_ele *rss_filter_ptr;
-	struct hns3_hw *hw = &hns->hw;
 	struct hns3_rss_conf *rss_info;
 	uint64_t flow_types;
 	uint16_t num;
@@ -1560,13 +1556,13 @@ hns3_config_rss_filter(struct rte_eth_dev *dev,
 	}
 
 	/* Set rx queues to use */
-	num = RTE_MIN(dev->data->nb_rx_queues, rss_flow_conf.queue_num);
+	num = RTE_MIN(hw->data->nb_rx_queues, rss_flow_conf.queue_num);
 	if (rss_flow_conf.queue_num > num)
 		hns3_warn(hw, "Config queue numbers %u are beyond the scope of truncated",
 			  rss_flow_conf.queue_num);
 	hns3_info(hw, "Max of contiguous %u PF queues are configured", num);
 	if (num) {
-		ret = hns3_update_indir_table(dev, &rss_flow_conf, num);
+		ret = hns3_update_indir_table(hw, &rss_flow_conf, num);
 		if (ret)
 			return ret;
 	}
@@ -1603,7 +1599,7 @@ hns3_clear_rss_filter(struct rte_eth_dev *dev)
 	rss_filter_ptr = TAILQ_FIRST(&hw->flow_rss_list);
 	while (rss_filter_ptr) {
 		TAILQ_REMOVE(&hw->flow_rss_list, rss_filter_ptr, entries);
-		ret = hns3_config_rss_filter(dev, &rss_filter_ptr->filter_info,
+		ret = hns3_config_rss_filter(hw, &rss_filter_ptr->filter_info,
 					     false);
 		if (ret)
 			rss_rule_fail_cnt++;
@@ -1624,11 +1620,9 @@ hns3_clear_rss_filter(struct rte_eth_dev *dev)
 }
 
 static int
-hns3_restore_rss_filter(struct rte_eth_dev *dev)
+hns3_restore_rss_filter(struct hns3_hw *hw)
 {
-	struct hns3_adapter *hns = dev->data->dev_private;
 	struct hns3_rss_conf_ele *filter;
-	struct hns3_hw *hw = &hns->hw;
 	int ret = 0;
 
 	pthread_mutex_lock(&hw->flows_lock);
@@ -1636,7 +1630,7 @@ hns3_restore_rss_filter(struct rte_eth_dev *dev)
 		if (!filter->filter_info.valid)
 			continue;
 
-		ret = hns3_config_rss_filter(dev, &filter->filter_info, true);
+		ret = hns3_config_rss_filter(hw, &filter->filter_info, true);
 		if (ret != 0) {
 			hns3_err(hw, "restore RSS filter failed, ret=%d", ret);
 			goto out;
@@ -1650,16 +1644,16 @@ out:
 }
 
 int
-hns3_restore_filter(struct rte_eth_dev *dev)
+hns3_restore_filter(struct hns3_adapter *hns)
 {
-	struct hns3_adapter *hns = dev->data->dev_private;
+	struct hns3_hw *hw = &hns->hw;
 	int ret;
 
 	ret = hns3_restore_all_fdir_filter(hns);
 	if (ret != 0)
 		return ret;
 
-	return hns3_restore_rss_filter(dev);
+	return hns3_restore_rss_filter(hw);
 }
 
 static int
@@ -1676,7 +1670,7 @@ hns3_flow_parse_rss(struct rte_eth_dev *dev,
 		return -EINVAL;
 	}
 
-	return hns3_config_rss_filter(dev, conf, add);
+	return hns3_config_rss_filter(hw, conf, add);
 }
 
 static int
@@ -1887,7 +1881,7 @@ hns3_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow,
 		break;
 	case RTE_ETH_FILTER_HASH:
 		rss_filter_ptr = (struct hns3_rss_conf_ele *)flow->rule;
-		ret = hns3_config_rss_filter(dev, &rss_filter_ptr->filter_info,
+		ret = hns3_config_rss_filter(hw, &rss_filter_ptr->filter_info,
 					     false);
 		if (ret)
 			return rte_flow_error_set(error, EIO,
diff --git a/drivers/net/hns3/hns3_rss.h b/drivers/net/hns3/hns3_rss.h
index b8ada8b07c..4fe7363916 100644
--- a/drivers/net/hns3/hns3_rss.h
+++ b/drivers/net/hns3/hns3_rss.h
@@ -110,6 +110,6 @@ int hns3_config_rss(struct hns3_adapter *hns);
 void hns3_rss_uninit(struct hns3_adapter *hns);
 int hns3_set_rss_tuple_by_rss_hf(struct hns3_hw *hw, uint64_t rss_hf);
 int hns3_set_rss_algo_key(struct hns3_hw *hw, const uint8_t *key);
-int hns3_restore_filter(struct rte_eth_dev *dev);
+int hns3_restore_filter(struct hns3_adapter *hns);
 
 #endif /* _HNS3_RSS_H_ */
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-11-03 09:27:30.263781968 +0000
+++ 0081-net-hns3-fix-restore-filter-function-input.patch	2022-11-03 09:27:25.533425537 +0000
@@ -1 +1 @@
-From 1042ed401f3d19efb499ef832eb3c48f77dac13f Mon Sep 17 00:00:00 2001
+From 4bd8b93920d55c80804c5d017897772ee880ee87 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1042ed401f3d19efb499ef832eb3c48f77dac13f ]
+
@@ -13 +14,0 @@
-Cc: stable at dpdk.org
@@ -21 +22 @@
- drivers/net/hns3/hns3_flow.h      |  2 +-
+ drivers/net/hns3/hns3_rss.h       |  2 +-
@@ -25 +26 @@
-index 15d622a900..330a913cb8 100644
+index 33b10539e0..500de265c4 100644
@@ -28 +29 @@
-@@ -5006,7 +5006,6 @@ static int
+@@ -4890,7 +4890,6 @@ static int
@@ -33 +33,0 @@
- 	bool link_en;
@@ -36,4 +36,5 @@
-@@ -5043,7 +5042,7 @@ hns3_do_start(struct hns3_adapter *hns, bool reset_queue)
- 	if (ret)
- 		goto err_set_link_speed;
- 
+ 	ret = hns3_update_queue_map_configure(hns);
+@@ -4911,7 +4910,7 @@ hns3_do_start(struct hns3_adapter *hns, bool reset_queue)
+ 		PMD_INIT_LOG(ERR, "failed to enable MAC, ret = %d", ret);
+ 		goto err_config_mac_mode;
+ 	}
@@ -43,2 +44,2 @@
- err_set_link_speed:
- 	(void)hns3_cfg_mac_mode(hw, false);
+ err_config_mac_mode:
+ 	hns3_dev_release_mbufs(hns);
@@ -46 +47 @@
-index bc8f5ecec2..446a0cdbc7 100644
+index d8739da89a..17dbf48576 100644
@@ -49 +50 @@
-@@ -1727,7 +1727,6 @@ static int
+@@ -2085,7 +2085,6 @@ static int
@@ -57 +58 @@
-@@ -1742,7 +1741,7 @@ hns3vf_do_start(struct hns3_adapter *hns, bool reset_queue)
+@@ -2098,7 +2097,7 @@ hns3vf_do_start(struct hns3_adapter *hns, bool reset_queue)
@@ -67 +68 @@
-index dd61ecd2aa..a2c1589c39 100644
+index ffdd131d15..b1317d7311 100644
@@ -70 +71 @@
-@@ -1508,11 +1508,9 @@ hns3_hw_rss_hash_set(struct hns3_hw *hw, struct rte_flow_action_rss *rss_config)
+@@ -1476,11 +1476,9 @@ hns3_hw_rss_hash_set(struct hns3_hw *hw, struct rte_flow_action_rss *rss_config)
@@ -83 +84 @@
-@@ -1535,11 +1533,9 @@ hns3_update_indir_table(struct rte_eth_dev *dev,
+@@ -1503,12 +1501,10 @@ hns3_update_indir_table(struct rte_eth_dev *dev,
@@ -91,0 +93 @@
+ 	struct hns3_rss_conf_ele *rss_filter_ptr;
@@ -96 +98 @@
-@@ -1591,13 +1587,13 @@ hns3_config_rss_filter(struct rte_eth_dev *dev,
+@@ -1560,13 +1556,13 @@ hns3_config_rss_filter(struct rte_eth_dev *dev,
@@ -112 +114 @@
-@@ -1627,7 +1623,7 @@ hns3_clear_rss_filter(struct rte_eth_dev *dev)
+@@ -1603,7 +1599,7 @@ hns3_clear_rss_filter(struct rte_eth_dev *dev)
@@ -121 +123 @@
-@@ -1647,11 +1643,9 @@ hns3_clear_rss_filter(struct rte_eth_dev *dev)
+@@ -1624,11 +1620,9 @@ hns3_clear_rss_filter(struct rte_eth_dev *dev)
@@ -134 +136 @@
-@@ -1659,7 +1653,7 @@ hns3_restore_rss_filter(struct rte_eth_dev *dev)
+@@ -1636,7 +1630,7 @@ hns3_restore_rss_filter(struct rte_eth_dev *dev)
@@ -143 +145 @@
-@@ -1673,16 +1667,16 @@ out:
+@@ -1650,16 +1644,16 @@ out:
@@ -163 +165 @@
-@@ -1699,7 +1693,7 @@ hns3_flow_parse_rss(struct rte_eth_dev *dev,
+@@ -1676,7 +1670,7 @@ hns3_flow_parse_rss(struct rte_eth_dev *dev,
@@ -172 +174 @@
-@@ -1960,7 +1954,7 @@ hns3_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow,
+@@ -1887,7 +1881,7 @@ hns3_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow,
@@ -181,8 +183,8 @@
-diff --git a/drivers/net/hns3/hns3_flow.h b/drivers/net/hns3/hns3_flow.h
-index 0f5de129a3..854fbb7ff0 100644
---- a/drivers/net/hns3/hns3_flow.h
-+++ b/drivers/net/hns3/hns3_flow.h
-@@ -49,6 +49,6 @@ int hns3_dev_flow_ops_get(struct rte_eth_dev *dev,
- 			  const struct rte_flow_ops **ops);
- void hns3_flow_init(struct rte_eth_dev *dev);
- void hns3_flow_uninit(struct rte_eth_dev *dev);
+diff --git a/drivers/net/hns3/hns3_rss.h b/drivers/net/hns3/hns3_rss.h
+index b8ada8b07c..4fe7363916 100644
+--- a/drivers/net/hns3/hns3_rss.h
++++ b/drivers/net/hns3/hns3_rss.h
+@@ -110,6 +110,6 @@ int hns3_config_rss(struct hns3_adapter *hns);
+ void hns3_rss_uninit(struct hns3_adapter *hns);
+ int hns3_set_rss_tuple_by_rss_hf(struct hns3_hw *hw, uint64_t rss_hf);
+ int hns3_set_rss_algo_key(struct hns3_hw *hw, const uint8_t *key);
@@ -192 +194 @@
- #endif /* _HNS3_FLOW_H_ */
+ #endif /* _HNS3_RSS_H_ */


More information about the stable mailing list