patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Xueming Li <xuemingl@nvidia.com>
To: Bing Zhao <bingz@nvidia.com>
Cc: Suanming Mou <suanmingm@nvidia.com>, Ori Kam <orika@nvidia.com>,
	"dpdk stable" <stable@dpdk.org>
Subject: patch 'net/mlx5: fix error set in control tables create' has been queued to stable release 22.11.3
Date: Thu, 10 Aug 2023 07:58:55 +0800	[thread overview]
Message-ID: <20230809235947.1187-23-xuemingl@nvidia.com> (raw)
In-Reply-To: <20230809235947.1187-1-xuemingl@nvidia.com>

Hi,

FYI, your patch has been queued to stable release 22.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 08/11/23. 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://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=6f086a7a7497e454ec00b842a1f578bbf302c16b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6f086a7a7497e454ec00b842a1f578bbf302c16b Mon Sep 17 00:00:00 2001
From: Bing Zhao <bingz@nvidia.com>
Date: Fri, 30 Jun 2023 12:46:35 +0300
Subject: [PATCH] net/mlx5: fix error set in control tables create
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 0dc3b3d06823770c85eacd5b9f70132e69ac75b2 ]

When some failure occurs in the flow_hw_create_ctrl_tables(), the
"rte_flow_error" should be set properly with all needed information.
Then the rte_errno and the "message" will reflect the actual failure.

This will also solve the crash when trying to access the "message".

Fixes: 1939eb6f660c ("net/mlx5: support flow port action with HWS")
Fixes: 483181f7b6dd ("net/mlx5: support device control of representor matching")
Fixes: ddb68e47331e ("net/mlx5: add extended metadata mode for HWS")

Signed-off-by: Bing Zhao <bingz@nvidia.com>
Reviewed-by: Suanming Mou <suanmingm@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_hw.c | 176 +++++++++++++++++++-------------
 1 file changed, 106 insertions(+), 70 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index ccd78990a6..3a1b3dfd06 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -4814,7 +4814,7 @@ flow_hw_pattern_template_create(struct rte_eth_dev *dev,
 	struct rte_flow_pattern_template *it;
 	struct rte_flow_item *copied_items = NULL;
 	const struct rte_flow_item *tmpl_items;
-	uint64_t orig_item_nb;
+	uint32_t orig_item_nb;
 	struct rte_flow_item port = {
 		.type = RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT,
 		.mask = &rte_flow_item_ethdev_mask,
@@ -5573,12 +5573,15 @@ flow_hw_esw_mgr_regc_marker(struct rte_eth_dev *dev)
  *
  * @param dev
  *   Pointer to Ethernet device.
+ * @param error
+ *   Pointer to error structure.
  *
  * @return
  *   Pointer to flow pattern template on success, NULL otherwise.
  */
 static struct rte_flow_pattern_template *
-flow_hw_create_ctrl_esw_mgr_pattern_template(struct rte_eth_dev *dev)
+flow_hw_create_ctrl_esw_mgr_pattern_template(struct rte_eth_dev *dev,
+					     struct rte_flow_error *error)
 {
 	struct rte_flow_pattern_template_attr attr = {
 		.relaxed_matching = 0,
@@ -5608,7 +5611,7 @@ flow_hw_create_ctrl_esw_mgr_pattern_template(struct rte_eth_dev *dev)
 		},
 	};
 
-	return flow_hw_pattern_template_create(dev, &attr, items, NULL);
+	return flow_hw_pattern_template_create(dev, &attr, items, error);
 }
 
 /**
@@ -5621,12 +5624,15 @@ flow_hw_create_ctrl_esw_mgr_pattern_template(struct rte_eth_dev *dev)
  *
  * @param dev
  *   Pointer to Ethernet device.
+ * @param error
+ *   Pointer to error structure.
  *
  * @return
  *   Pointer to flow pattern template on success, NULL otherwise.
  */
 static struct rte_flow_pattern_template *
-flow_hw_create_ctrl_regc_sq_pattern_template(struct rte_eth_dev *dev)
+flow_hw_create_ctrl_regc_sq_pattern_template(struct rte_eth_dev *dev,
+					     struct rte_flow_error *error)
 {
 	struct rte_flow_pattern_template_attr attr = {
 		.relaxed_matching = 0,
@@ -5659,7 +5665,7 @@ flow_hw_create_ctrl_regc_sq_pattern_template(struct rte_eth_dev *dev)
 		},
 	};
 
-	return flow_hw_pattern_template_create(dev, &attr, items, NULL);
+	return flow_hw_pattern_template_create(dev, &attr, items, error);
 }
 
 /**
@@ -5669,12 +5675,15 @@ flow_hw_create_ctrl_regc_sq_pattern_template(struct rte_eth_dev *dev)
  *
  * @param dev
  *   Pointer to Ethernet device.
+ * @param error
+ *   Pointer to error structure.
  *
  * @return
  *   Pointer to flow pattern template on success, NULL otherwise.
  */
 static struct rte_flow_pattern_template *
-flow_hw_create_ctrl_port_pattern_template(struct rte_eth_dev *dev)
+flow_hw_create_ctrl_port_pattern_template(struct rte_eth_dev *dev,
+					  struct rte_flow_error *error)
 {
 	struct rte_flow_pattern_template_attr attr = {
 		.relaxed_matching = 0,
@@ -5693,7 +5702,7 @@ flow_hw_create_ctrl_port_pattern_template(struct rte_eth_dev *dev)
 		},
 	};
 
-	return flow_hw_pattern_template_create(dev, &attr, items, NULL);
+	return flow_hw_pattern_template_create(dev, &attr, items, error);
 }
 
 /*
@@ -5703,12 +5712,15 @@ flow_hw_create_ctrl_port_pattern_template(struct rte_eth_dev *dev)
  *
  * @param dev
  *   Pointer to Ethernet device.
+ * @param error
+ *   Pointer to error structure.
  *
  * @return
  *   Pointer to flow pattern template on success, NULL otherwise.
  */
 static struct rte_flow_pattern_template *
-flow_hw_create_tx_default_mreg_copy_pattern_template(struct rte_eth_dev *dev)
+flow_hw_create_tx_default_mreg_copy_pattern_template(struct rte_eth_dev *dev,
+						     struct rte_flow_error *error)
 {
 	struct rte_flow_pattern_template_attr tx_pa_attr = {
 		.relaxed_matching = 0,
@@ -5729,10 +5741,8 @@ flow_hw_create_tx_default_mreg_copy_pattern_template(struct rte_eth_dev *dev)
 			.type = RTE_FLOW_ITEM_TYPE_END,
 		},
 	};
-	struct rte_flow_error drop_err;
 
-	RTE_SET_USED(drop_err);
-	return flow_hw_pattern_template_create(dev, &tx_pa_attr, eth_all, &drop_err);
+	return flow_hw_pattern_template_create(dev, &tx_pa_attr, eth_all, error);
 }
 
 /**
@@ -5743,12 +5753,15 @@ flow_hw_create_tx_default_mreg_copy_pattern_template(struct rte_eth_dev *dev)
  *
  * @param dev
  *   Pointer to Ethernet device.
+ * @param error
+ *   Pointer to error structure.
  *
  * @return
  *   Pointer to flow actions template on success, NULL otherwise.
  */
 static struct rte_flow_actions_template *
-flow_hw_create_ctrl_regc_jump_actions_template(struct rte_eth_dev *dev)
+flow_hw_create_ctrl_regc_jump_actions_template(struct rte_eth_dev *dev,
+					       struct rte_flow_error *error)
 {
 	uint32_t marker_mask = flow_hw_esw_mgr_regc_marker_mask(dev);
 	uint32_t marker_bits = flow_hw_esw_mgr_regc_marker(dev);
@@ -5814,7 +5827,7 @@ flow_hw_create_ctrl_regc_jump_actions_template(struct rte_eth_dev *dev)
 	set_reg_v.dst.offset = rte_bsf32(marker_mask);
 	rte_memcpy(set_reg_v.src.value, &marker_bits, sizeof(marker_bits));
 	rte_memcpy(set_reg_m.src.value, &marker_mask, sizeof(marker_mask));
-	return flow_hw_actions_template_create(dev, &attr, actions_v, actions_m, NULL);
+	return flow_hw_actions_template_create(dev, &attr, actions_v, actions_m, error);
 }
 
 /**
@@ -5826,13 +5839,16 @@ flow_hw_create_ctrl_regc_jump_actions_template(struct rte_eth_dev *dev)
  *   Pointer to Ethernet device.
  * @param group
  *   Destination group for this action template.
+ * @param error
+ *   Pointer to error structure.
  *
  * @return
  *   Pointer to flow actions template on success, NULL otherwise.
  */
 static struct rte_flow_actions_template *
 flow_hw_create_ctrl_jump_actions_template(struct rte_eth_dev *dev,
-					  uint32_t group)
+					  uint32_t group,
+					  struct rte_flow_error *error)
 {
 	struct rte_flow_actions_template_attr attr = {
 		.transfer = 1,
@@ -5862,8 +5878,8 @@ flow_hw_create_ctrl_jump_actions_template(struct rte_eth_dev *dev,
 		}
 	};
 
-	return flow_hw_actions_template_create(dev, &attr, actions_v, actions_m,
-					       NULL);
+	return flow_hw_actions_template_create(dev, &attr, actions_v,
+					       actions_m, error);
 }
 
 /**
@@ -5872,12 +5888,15 @@ flow_hw_create_ctrl_jump_actions_template(struct rte_eth_dev *dev,
  *
  * @param dev
  *   Pointer to Ethernet device.
+ * @param error
+ *   Pointer to error structure.
  *
  * @return
  *   Pointer to flow action template on success, NULL otherwise.
  */
 static struct rte_flow_actions_template *
-flow_hw_create_ctrl_port_actions_template(struct rte_eth_dev *dev)
+flow_hw_create_ctrl_port_actions_template(struct rte_eth_dev *dev,
+					  struct rte_flow_error *error)
 {
 	struct rte_flow_actions_template_attr attr = {
 		.transfer = 1,
@@ -5907,8 +5926,7 @@ flow_hw_create_ctrl_port_actions_template(struct rte_eth_dev *dev)
 		}
 	};
 
-	return flow_hw_actions_template_create(dev, &attr, actions_v, actions_m,
-					       NULL);
+	return flow_hw_actions_template_create(dev, &attr, actions_v, actions_m, error);
 }
 
 /*
@@ -5917,12 +5935,15 @@ flow_hw_create_ctrl_port_actions_template(struct rte_eth_dev *dev)
  *
  * @param dev
  *   Pointer to Ethernet device.
+ * @param error
+ *   Pointer to error structure.
  *
  * @return
  *   Pointer to flow actions template on success, NULL otherwise.
  */
 static struct rte_flow_actions_template *
-flow_hw_create_tx_default_mreg_copy_actions_template(struct rte_eth_dev *dev)
+flow_hw_create_tx_default_mreg_copy_actions_template(struct rte_eth_dev *dev,
+						     struct rte_flow_error *error)
 {
 	struct rte_flow_actions_template_attr tx_act_attr = {
 		.egress = 1,
@@ -5985,11 +6006,9 @@ flow_hw_create_tx_default_mreg_copy_actions_template(struct rte_eth_dev *dev)
 			.type = RTE_FLOW_ACTION_TYPE_END,
 		},
 	};
-	struct rte_flow_error drop_err;
 
-	RTE_SET_USED(drop_err);
 	return flow_hw_actions_template_create(dev, &tx_act_attr, actions,
-					       masks, &drop_err);
+					       masks, error);
 }
 
 /**
@@ -6002,6 +6021,8 @@ flow_hw_create_tx_default_mreg_copy_actions_template(struct rte_eth_dev *dev)
  *   Pointer to flow pattern template.
  * @param at
  *   Pointer to flow actions template.
+ * @param error
+ *   Pointer to error structure.
  *
  * @return
  *   Pointer to flow table on success, NULL otherwise.
@@ -6009,7 +6030,8 @@ flow_hw_create_tx_default_mreg_copy_actions_template(struct rte_eth_dev *dev)
 static struct rte_flow_template_table*
 flow_hw_create_ctrl_sq_miss_root_table(struct rte_eth_dev *dev,
 				       struct rte_flow_pattern_template *it,
-				       struct rte_flow_actions_template *at)
+				       struct rte_flow_actions_template *at,
+				       struct rte_flow_error *error)
 {
 	struct rte_flow_template_table_attr attr = {
 		.flow_attr = {
@@ -6026,7 +6048,7 @@ flow_hw_create_ctrl_sq_miss_root_table(struct rte_eth_dev *dev,
 		.external = false,
 	};
 
-	return flow_hw_table_create(dev, &cfg, &it, 1, &at, 1, NULL);
+	return flow_hw_table_create(dev, &cfg, &it, 1, &at, 1, error);
 }
 
 
@@ -6040,6 +6062,8 @@ flow_hw_create_ctrl_sq_miss_root_table(struct rte_eth_dev *dev,
  *   Pointer to flow pattern template.
  * @param at
  *   Pointer to flow actions template.
+ * @param error
+ *   Pointer to error structure.
  *
  * @return
  *   Pointer to flow table on success, NULL otherwise.
@@ -6047,7 +6071,8 @@ flow_hw_create_ctrl_sq_miss_root_table(struct rte_eth_dev *dev,
 static struct rte_flow_template_table*
 flow_hw_create_ctrl_sq_miss_table(struct rte_eth_dev *dev,
 				  struct rte_flow_pattern_template *it,
-				  struct rte_flow_actions_template *at)
+				  struct rte_flow_actions_template *at,
+				  struct rte_flow_error *error)
 {
 	struct rte_flow_template_table_attr attr = {
 		.flow_attr = {
@@ -6064,7 +6089,7 @@ flow_hw_create_ctrl_sq_miss_table(struct rte_eth_dev *dev,
 		.external = false,
 	};
 
-	return flow_hw_table_create(dev, &cfg, &it, 1, &at, 1, NULL);
+	return flow_hw_table_create(dev, &cfg, &it, 1, &at, 1, error);
 }
 
 /*
@@ -6076,6 +6101,8 @@ flow_hw_create_ctrl_sq_miss_table(struct rte_eth_dev *dev,
  *   Pointer to flow pattern template.
  * @param at
  *   Pointer to flow actions template.
+ * @param error
+ *   Pointer to error structure.
  *
  * @return
  *   Pointer to flow table on success, NULL otherwise.
@@ -6083,7 +6110,8 @@ flow_hw_create_ctrl_sq_miss_table(struct rte_eth_dev *dev,
 static struct rte_flow_template_table*
 flow_hw_create_tx_default_mreg_copy_table(struct rte_eth_dev *dev,
 					  struct rte_flow_pattern_template *pt,
-					  struct rte_flow_actions_template *at)
+					  struct rte_flow_actions_template *at,
+					  struct rte_flow_error *error)
 {
 	struct rte_flow_template_table_attr tx_tbl_attr = {
 		.flow_attr = {
@@ -6097,14 +6125,8 @@ flow_hw_create_tx_default_mreg_copy_table(struct rte_eth_dev *dev,
 		.attr = tx_tbl_attr,
 		.external = false,
 	};
-	struct rte_flow_error drop_err = {
-		.type = RTE_FLOW_ERROR_TYPE_NONE,
-		.cause = NULL,
-		.message = NULL,
-	};
 
-	RTE_SET_USED(drop_err);
-	return flow_hw_table_create(dev, &tx_tbl_cfg, &pt, 1, &at, 1, &drop_err);
+	return flow_hw_table_create(dev, &tx_tbl_cfg, &pt, 1, &at, 1, error);
 }
 
 /**
@@ -6117,6 +6139,8 @@ flow_hw_create_tx_default_mreg_copy_table(struct rte_eth_dev *dev,
  *   Pointer to flow pattern template.
  * @param at
  *   Pointer to flow actions template.
+ * @param error
+ *   Pointer to error structure.
  *
  * @return
  *   Pointer to flow table on success, NULL otherwise.
@@ -6124,7 +6148,8 @@ flow_hw_create_tx_default_mreg_copy_table(struct rte_eth_dev *dev,
 static struct rte_flow_template_table *
 flow_hw_create_ctrl_jump_table(struct rte_eth_dev *dev,
 			       struct rte_flow_pattern_template *it,
-			       struct rte_flow_actions_template *at)
+			       struct rte_flow_actions_template *at,
+			       struct rte_flow_error *error)
 {
 	struct rte_flow_template_table_attr attr = {
 		.flow_attr = {
@@ -6141,7 +6166,7 @@ flow_hw_create_ctrl_jump_table(struct rte_eth_dev *dev,
 		.external = false,
 	};
 
-	return flow_hw_table_create(dev, &cfg, &it, 1, &at, 1, NULL);
+	return flow_hw_table_create(dev, &cfg, &it, 1, &at, 1, error);
 }
 
 /**
@@ -6150,12 +6175,14 @@ flow_hw_create_ctrl_jump_table(struct rte_eth_dev *dev,
  *
  * @param dev
  *   Pointer to Ethernet device.
+ * @param error
+ *   Pointer to error structure.
  *
  * @return
- *   0 on success, EINVAL otherwise
+ *   0 on success, negative values otherwise
  */
 static __rte_unused int
-flow_hw_create_ctrl_tables(struct rte_eth_dev *dev)
+flow_hw_create_ctrl_tables(struct rte_eth_dev *dev, struct rte_flow_error *error)
 {
 	struct mlx5_priv *priv = dev->data->dev_private;
 	struct rte_flow_pattern_template *esw_mgr_items_tmpl = NULL;
@@ -6168,96 +6195,107 @@ flow_hw_create_ctrl_tables(struct rte_eth_dev *dev)
 	struct rte_flow_actions_template *tx_meta_actions_tmpl = NULL;
 	uint32_t xmeta = priv->sh->config.dv_xmeta_en;
 	uint32_t repr_matching = priv->sh->config.repr_matching;
+	int ret;
 
 	/* Create templates and table for default SQ miss flow rules - root table. */
-	esw_mgr_items_tmpl = flow_hw_create_ctrl_esw_mgr_pattern_template(dev);
+	esw_mgr_items_tmpl = flow_hw_create_ctrl_esw_mgr_pattern_template(dev, error);
 	if (!esw_mgr_items_tmpl) {
 		DRV_LOG(ERR, "port %u failed to create E-Switch Manager item"
 			" template for control flows", dev->data->port_id);
-		goto error;
+		goto err;
 	}
-	regc_jump_actions_tmpl = flow_hw_create_ctrl_regc_jump_actions_template(dev);
+	regc_jump_actions_tmpl = flow_hw_create_ctrl_regc_jump_actions_template(dev, error);
 	if (!regc_jump_actions_tmpl) {
 		DRV_LOG(ERR, "port %u failed to create REG_C set and jump action template"
 			" for control flows", dev->data->port_id);
-		goto error;
+		goto err;
 	}
 	MLX5_ASSERT(priv->hw_esw_sq_miss_root_tbl == NULL);
 	priv->hw_esw_sq_miss_root_tbl = flow_hw_create_ctrl_sq_miss_root_table
-			(dev, esw_mgr_items_tmpl, regc_jump_actions_tmpl);
+			(dev, esw_mgr_items_tmpl, regc_jump_actions_tmpl, error);
 	if (!priv->hw_esw_sq_miss_root_tbl) {
 		DRV_LOG(ERR, "port %u failed to create table for default sq miss (root table)"
 			" for control flows", dev->data->port_id);
-		goto error;
+		goto err;
 	}
 	/* Create templates and table for default SQ miss flow rules - non-root table. */
-	regc_sq_items_tmpl = flow_hw_create_ctrl_regc_sq_pattern_template(dev);
+	regc_sq_items_tmpl = flow_hw_create_ctrl_regc_sq_pattern_template(dev, error);
 	if (!regc_sq_items_tmpl) {
 		DRV_LOG(ERR, "port %u failed to create SQ item template for"
 			" control flows", dev->data->port_id);
-		goto error;
+		goto err;
 	}
-	port_actions_tmpl = flow_hw_create_ctrl_port_actions_template(dev);
+	port_actions_tmpl = flow_hw_create_ctrl_port_actions_template(dev, error);
 	if (!port_actions_tmpl) {
 		DRV_LOG(ERR, "port %u failed to create port action template"
 			" for control flows", dev->data->port_id);
-		goto error;
+		goto err;
 	}
 	MLX5_ASSERT(priv->hw_esw_sq_miss_tbl == NULL);
 	priv->hw_esw_sq_miss_tbl = flow_hw_create_ctrl_sq_miss_table(dev, regc_sq_items_tmpl,
-								     port_actions_tmpl);
+								     port_actions_tmpl, error);
 	if (!priv->hw_esw_sq_miss_tbl) {
 		DRV_LOG(ERR, "port %u failed to create table for default sq miss (non-root table)"
 			" for control flows", dev->data->port_id);
-		goto error;
+		goto err;
 	}
 	/* Create templates and table for default FDB jump flow rules. */
-	port_items_tmpl = flow_hw_create_ctrl_port_pattern_template(dev);
+	port_items_tmpl = flow_hw_create_ctrl_port_pattern_template(dev, error);
 	if (!port_items_tmpl) {
 		DRV_LOG(ERR, "port %u failed to create SQ item template for"
 			" control flows", dev->data->port_id);
-		goto error;
+		goto err;
 	}
 	jump_one_actions_tmpl = flow_hw_create_ctrl_jump_actions_template
-			(dev, MLX5_HW_LOWEST_USABLE_GROUP);
+			(dev, MLX5_HW_LOWEST_USABLE_GROUP, error);
 	if (!jump_one_actions_tmpl) {
 		DRV_LOG(ERR, "port %u failed to create jump action template"
 			" for control flows", dev->data->port_id);
-		goto error;
+		goto err;
 	}
 	MLX5_ASSERT(priv->hw_esw_zero_tbl == NULL);
 	priv->hw_esw_zero_tbl = flow_hw_create_ctrl_jump_table(dev, port_items_tmpl,
-							       jump_one_actions_tmpl);
+							       jump_one_actions_tmpl,
+							       error);
 	if (!priv->hw_esw_zero_tbl) {
 		DRV_LOG(ERR, "port %u failed to create table for default jump to group 1"
 			" for control flows", dev->data->port_id);
-		goto error;
+		goto err;
 	}
 	/* Create templates and table for default Tx metadata copy flow rule. */
 	if (!repr_matching && xmeta == MLX5_XMETA_MODE_META32_HWS) {
-		tx_meta_items_tmpl = flow_hw_create_tx_default_mreg_copy_pattern_template(dev);
+		tx_meta_items_tmpl =
+			flow_hw_create_tx_default_mreg_copy_pattern_template(dev, error);
 		if (!tx_meta_items_tmpl) {
 			DRV_LOG(ERR, "port %u failed to Tx metadata copy pattern"
 				" template for control flows", dev->data->port_id);
-			goto error;
+			goto err;
 		}
-		tx_meta_actions_tmpl = flow_hw_create_tx_default_mreg_copy_actions_template(dev);
+		tx_meta_actions_tmpl =
+			flow_hw_create_tx_default_mreg_copy_actions_template(dev, error);
 		if (!tx_meta_actions_tmpl) {
 			DRV_LOG(ERR, "port %u failed to Tx metadata copy actions"
 				" template for control flows", dev->data->port_id);
-			goto error;
+			goto err;
 		}
 		MLX5_ASSERT(priv->hw_tx_meta_cpy_tbl == NULL);
-		priv->hw_tx_meta_cpy_tbl = flow_hw_create_tx_default_mreg_copy_table(dev,
-					tx_meta_items_tmpl, tx_meta_actions_tmpl);
+		priv->hw_tx_meta_cpy_tbl =
+			flow_hw_create_tx_default_mreg_copy_table(dev, tx_meta_items_tmpl,
+								  tx_meta_actions_tmpl, error);
 		if (!priv->hw_tx_meta_cpy_tbl) {
 			DRV_LOG(ERR, "port %u failed to create table for default"
 				" Tx metadata copy flow rule", dev->data->port_id);
-			goto error;
+			goto err;
 		}
 	}
 	return 0;
-error:
+err:
+	/* Do not overwrite the rte_errno. */
+	ret = -rte_errno;
+	if (ret == 0)
+		ret = rte_flow_error_set(error, EINVAL,
+					 RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL,
+					 "Failed to create control tables.");
 	if (priv->hw_esw_zero_tbl) {
 		flow_hw_table_destroy(dev, priv->hw_esw_zero_tbl, NULL);
 		priv->hw_esw_zero_tbl = NULL;
@@ -6286,7 +6324,7 @@ error:
 		flow_hw_pattern_template_destroy(dev, regc_sq_items_tmpl, NULL);
 	if (esw_mgr_items_tmpl)
 		flow_hw_pattern_template_destroy(dev, esw_mgr_items_tmpl, NULL);
-	return -EINVAL;
+	return ret;
 }
 
 static void
@@ -6995,11 +7033,9 @@ flow_hw_configure(struct rte_eth_dev *dev,
 					   NULL, "Failed to create vport actions.");
 			goto err;
 		}
-		ret = flow_hw_create_ctrl_tables(dev);
-		if (ret) {
-			rte_errno = -ret;
+		ret = flow_hw_create_ctrl_tables(dev, error);
+		if (ret)
 			goto err;
-		}
 	}
 	if (port_attr->nb_conn_tracks) {
 		mem_size = sizeof(struct mlx5_aso_sq) * nb_q_updated +
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-08-09 21:51:20.105964700 +0800
+++ 0076-net-mlx5-fix-error-set-in-control-tables-create.patch	2023-08-09 21:51:18.234352000 +0800
@@ -1 +1 @@
-From 0dc3b3d06823770c85eacd5b9f70132e69ac75b2 Mon Sep 17 00:00:00 2001
+From 6f086a7a7497e454ec00b842a1f578bbf302c16b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 0dc3b3d06823770c85eacd5b9f70132e69ac75b2 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -25 +27 @@
-index 0a9b7700e0..94179ff747 100644
+index ccd78990a6..3a1b3dfd06 100644
@@ -28 +30 @@
-@@ -5425,7 +5425,7 @@ flow_hw_pattern_template_create(struct rte_eth_dev *dev,
+@@ -4814,7 +4814,7 @@ flow_hw_pattern_template_create(struct rte_eth_dev *dev,
@@ -37 +39 @@
-@@ -6246,12 +6246,15 @@ flow_hw_esw_mgr_regc_marker(struct rte_eth_dev *dev)
+@@ -5573,12 +5573,15 @@ flow_hw_esw_mgr_regc_marker(struct rte_eth_dev *dev)
@@ -54 +56 @@
-@@ -6281,7 +6284,7 @@ flow_hw_create_ctrl_esw_mgr_pattern_template(struct rte_eth_dev *dev)
+@@ -5608,7 +5611,7 @@ flow_hw_create_ctrl_esw_mgr_pattern_template(struct rte_eth_dev *dev)
@@ -63 +65 @@
-@@ -6294,12 +6297,15 @@ flow_hw_create_ctrl_esw_mgr_pattern_template(struct rte_eth_dev *dev)
+@@ -5621,12 +5624,15 @@ flow_hw_create_ctrl_esw_mgr_pattern_template(struct rte_eth_dev *dev)
@@ -80 +82 @@
-@@ -6332,7 +6338,7 @@ flow_hw_create_ctrl_regc_sq_pattern_template(struct rte_eth_dev *dev)
+@@ -5659,7 +5665,7 @@ flow_hw_create_ctrl_regc_sq_pattern_template(struct rte_eth_dev *dev)
@@ -89 +91 @@
-@@ -6342,12 +6348,15 @@ flow_hw_create_ctrl_regc_sq_pattern_template(struct rte_eth_dev *dev)
+@@ -5669,12 +5675,15 @@ flow_hw_create_ctrl_regc_sq_pattern_template(struct rte_eth_dev *dev)
@@ -106 +108 @@
-@@ -6366,7 +6375,7 @@ flow_hw_create_ctrl_port_pattern_template(struct rte_eth_dev *dev)
+@@ -5693,7 +5702,7 @@ flow_hw_create_ctrl_port_pattern_template(struct rte_eth_dev *dev)
@@ -115 +117 @@
-@@ -6376,12 +6385,15 @@ flow_hw_create_ctrl_port_pattern_template(struct rte_eth_dev *dev)
+@@ -5703,12 +5712,15 @@ flow_hw_create_ctrl_port_pattern_template(struct rte_eth_dev *dev)
@@ -132 +134 @@
-@@ -6402,10 +6414,8 @@ flow_hw_create_tx_default_mreg_copy_pattern_template(struct rte_eth_dev *dev)
+@@ -5729,10 +5741,8 @@ flow_hw_create_tx_default_mreg_copy_pattern_template(struct rte_eth_dev *dev)
@@ -144 +146 @@
-@@ -6416,12 +6426,15 @@ flow_hw_create_tx_default_mreg_copy_pattern_template(struct rte_eth_dev *dev)
+@@ -5743,12 +5753,15 @@ flow_hw_create_tx_default_mreg_copy_pattern_template(struct rte_eth_dev *dev)
@@ -161 +163 @@
-@@ -6488,7 +6501,7 @@ flow_hw_create_ctrl_regc_jump_actions_template(struct rte_eth_dev *dev)
+@@ -5814,7 +5827,7 @@ flow_hw_create_ctrl_regc_jump_actions_template(struct rte_eth_dev *dev)
@@ -170 +172 @@
-@@ -6500,13 +6513,16 @@ flow_hw_create_ctrl_regc_jump_actions_template(struct rte_eth_dev *dev)
+@@ -5826,13 +5839,16 @@ flow_hw_create_ctrl_regc_jump_actions_template(struct rte_eth_dev *dev)
@@ -188 +190 @@
-@@ -6536,8 +6552,8 @@ flow_hw_create_ctrl_jump_actions_template(struct rte_eth_dev *dev,
+@@ -5862,8 +5878,8 @@ flow_hw_create_ctrl_jump_actions_template(struct rte_eth_dev *dev,
@@ -199 +201 @@
-@@ -6546,12 +6562,15 @@ flow_hw_create_ctrl_jump_actions_template(struct rte_eth_dev *dev,
+@@ -5872,12 +5888,15 @@ flow_hw_create_ctrl_jump_actions_template(struct rte_eth_dev *dev,
@@ -216 +218 @@
-@@ -6581,8 +6600,7 @@ flow_hw_create_ctrl_port_actions_template(struct rte_eth_dev *dev)
+@@ -5907,8 +5926,7 @@ flow_hw_create_ctrl_port_actions_template(struct rte_eth_dev *dev)
@@ -226 +228 @@
-@@ -6591,12 +6609,15 @@ flow_hw_create_ctrl_port_actions_template(struct rte_eth_dev *dev)
+@@ -5917,12 +5935,15 @@ flow_hw_create_ctrl_port_actions_template(struct rte_eth_dev *dev)
@@ -243 +245 @@
-@@ -6661,11 +6682,9 @@ flow_hw_create_tx_default_mreg_copy_actions_template(struct rte_eth_dev *dev)
+@@ -5985,11 +6006,9 @@ flow_hw_create_tx_default_mreg_copy_actions_template(struct rte_eth_dev *dev)
@@ -256 +258 @@
-@@ -6678,6 +6697,8 @@ flow_hw_create_tx_default_mreg_copy_actions_template(struct rte_eth_dev *dev)
+@@ -6002,6 +6021,8 @@ flow_hw_create_tx_default_mreg_copy_actions_template(struct rte_eth_dev *dev)
@@ -265 +267 @@
-@@ -6685,7 +6706,8 @@ flow_hw_create_tx_default_mreg_copy_actions_template(struct rte_eth_dev *dev)
+@@ -6009,7 +6030,8 @@ flow_hw_create_tx_default_mreg_copy_actions_template(struct rte_eth_dev *dev)
@@ -275 +277 @@
-@@ -6702,7 +6724,7 @@ flow_hw_create_ctrl_sq_miss_root_table(struct rte_eth_dev *dev,
+@@ -6026,7 +6048,7 @@ flow_hw_create_ctrl_sq_miss_root_table(struct rte_eth_dev *dev,
@@ -284 +286 @@
-@@ -6716,6 +6738,8 @@ flow_hw_create_ctrl_sq_miss_root_table(struct rte_eth_dev *dev,
+@@ -6040,6 +6062,8 @@ flow_hw_create_ctrl_sq_miss_root_table(struct rte_eth_dev *dev,
@@ -293 +295 @@
-@@ -6723,7 +6747,8 @@ flow_hw_create_ctrl_sq_miss_root_table(struct rte_eth_dev *dev,
+@@ -6047,7 +6071,8 @@ flow_hw_create_ctrl_sq_miss_root_table(struct rte_eth_dev *dev,
@@ -303 +305 @@
-@@ -6740,7 +6765,7 @@ flow_hw_create_ctrl_sq_miss_table(struct rte_eth_dev *dev,
+@@ -6064,7 +6089,7 @@ flow_hw_create_ctrl_sq_miss_table(struct rte_eth_dev *dev,
@@ -312 +314 @@
-@@ -6752,6 +6777,8 @@ flow_hw_create_ctrl_sq_miss_table(struct rte_eth_dev *dev,
+@@ -6076,6 +6101,8 @@ flow_hw_create_ctrl_sq_miss_table(struct rte_eth_dev *dev,
@@ -321 +323 @@
-@@ -6759,7 +6786,8 @@ flow_hw_create_ctrl_sq_miss_table(struct rte_eth_dev *dev,
+@@ -6083,7 +6110,8 @@ flow_hw_create_ctrl_sq_miss_table(struct rte_eth_dev *dev,
@@ -331 +333 @@
-@@ -6773,14 +6801,8 @@ flow_hw_create_tx_default_mreg_copy_table(struct rte_eth_dev *dev,
+@@ -6097,14 +6125,8 @@ flow_hw_create_tx_default_mreg_copy_table(struct rte_eth_dev *dev,
@@ -347 +349 @@
-@@ -6793,6 +6815,8 @@ flow_hw_create_tx_default_mreg_copy_table(struct rte_eth_dev *dev,
+@@ -6117,6 +6139,8 @@ flow_hw_create_tx_default_mreg_copy_table(struct rte_eth_dev *dev,
@@ -356 +358 @@
-@@ -6800,7 +6824,8 @@ flow_hw_create_tx_default_mreg_copy_table(struct rte_eth_dev *dev,
+@@ -6124,7 +6148,8 @@ flow_hw_create_tx_default_mreg_copy_table(struct rte_eth_dev *dev,
@@ -366 +368 @@
-@@ -6817,7 +6842,7 @@ flow_hw_create_ctrl_jump_table(struct rte_eth_dev *dev,
+@@ -6141,7 +6166,7 @@ flow_hw_create_ctrl_jump_table(struct rte_eth_dev *dev,
@@ -375 +377 @@
-@@ -6826,12 +6851,14 @@ flow_hw_create_ctrl_jump_table(struct rte_eth_dev *dev,
+@@ -6150,12 +6175,14 @@ flow_hw_create_ctrl_jump_table(struct rte_eth_dev *dev,
@@ -392 +394 @@
-@@ -6844,96 +6871,107 @@ flow_hw_create_ctrl_tables(struct rte_eth_dev *dev)
+@@ -6168,96 +6195,107 @@ flow_hw_create_ctrl_tables(struct rte_eth_dev *dev)
@@ -526 +528 @@
-@@ -6962,7 +7000,7 @@ error:
+@@ -6286,7 +6324,7 @@ error:
@@ -535 +537 @@
-@@ -7835,11 +7873,9 @@ flow_hw_configure(struct rte_eth_dev *dev,
+@@ -6995,11 +7033,9 @@ flow_hw_configure(struct rte_eth_dev *dev,
@@ -547,2 +549,2 @@
- 	if (!priv->shared_host)
- 		flow_hw_create_send_to_kernel_actions(priv);
+ 	if (port_attr->nb_conn_tracks) {
+ 		mem_size = sizeof(struct mlx5_aso_sq) * nb_q_updated +

  parent reply	other threads:[~2023-08-10  0:02 UTC|newest]

Thread overview: 257+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-25  6:33 patch " Xueming Li
2023-06-25  6:33 ` patch 'net: fix return type of IPv4 L4 packet checksum' " Xueming Li
2023-06-25  6:33 ` patch 'kni: fix build with Linux 6.3' " Xueming Li
2023-06-25  6:33 ` patch 'examples/ip_pipeline: fix build with GCC 13' " Xueming Li
2023-06-25  6:33 ` patch 'examples/ntb: " Xueming Li
2023-06-25  6:33 ` patch 'ring: fix use after free' " Xueming Li
2023-06-25  6:33 ` patch 'vfio: fix include with musl runtime' " Xueming Li
2023-06-25  6:33 ` patch 'kernel/freebsd: fix function parameter list' " Xueming Li
2023-06-25  6:33 ` patch 'telemetry: fix autotest on Alpine' " Xueming Li
2023-06-25  6:33 ` patch 'ring: fix dequeue parameter name' " Xueming Li
2023-06-25  6:33 ` patch 'pipeline: fix double free for table stats' " Xueming Li
2023-06-25  6:33 ` patch 'test/malloc: fix missing free' " Xueming Li
2023-06-25  6:33 ` patch 'test/malloc: fix statistics checks' " Xueming Li
2023-06-25  6:33 ` patch 'eal: avoid calling cleanup twice' " Xueming Li
2023-06-25  6:33 ` patch 'ci: fix build for Arm cross compilation in GHA' " Xueming Li
2023-06-25  6:33 ` patch 'build: fix warning when getting NUMA nodes' " Xueming Li
2023-06-25  6:33 ` patch 'pci: fix comment referencing renamed function' " Xueming Li
2023-06-25  6:33 ` patch 'eal/x86: improve multiple of 64 bytes memcpy performance' " Xueming Li
2023-06-25  6:33 ` patch 'eventdev/timer: fix timeout event wait behavior' " Xueming Li
2023-06-25  6:33 ` patch 'doc: fix event timer adapter guide' " Xueming Li
2023-06-25  6:33 ` patch 'event/dsw: free rings on close' " Xueming Li
2023-06-25  6:33 ` patch 'event/cnxk: fix setting attributes in empty get work' " Xueming Li
2023-06-25  6:34 ` patch 'eventdev/timer: fix buffer flush' " Xueming Li
2023-06-25  6:34 ` patch 'event/cnxk: fix nanoseconds to ticks conversion' " Xueming Li
2023-06-25  6:34 ` patch 'eal/linux: fix secondary process crash for mp hotplug' " Xueming Li
2023-06-25  6:34 ` patch 'eal/linux: fix legacy mem init with many segments' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix build warning' " Xueming Li
2023-06-25  6:34 ` patch 'net/sfc: stop misuse of Rx ingress m-port metadata on EF100' " Xueming Li
2023-06-25  6:34 ` patch 'net/tap: set locally administered bit for fixed MAC address' " Xueming Li
2023-06-25  6:34 ` patch 'net/mana: use datapath logging' " Xueming Li
2023-06-25  6:34 ` patch 'net/mana: avoid unnecessary assignments in data path' " Xueming Li
2023-06-25  6:34 ` patch 'net/mana: optimize completion queue by batch processing' " Xueming Li
2023-06-25  6:34 ` patch 'net/dpaa2: fix checksum good flags' " Xueming Li
2023-06-25  6:34 ` patch 'app/testpmd: fix GTP L2 length in checksum engine' " Xueming Li
2023-06-25  6:34 ` patch 'net/nfp: fix VLAN push flow action' " Xueming Li
2023-06-25  6:34 ` patch 'net/vmxnet3: fix drop of empty segments in Tx' " Xueming Li
2023-06-25  6:34 ` patch 'net/txgbe: fix use-after-free on remove' " Xueming Li
2023-06-25  6:34 ` patch 'ethdev: fix MAC address occupies two entries' " Xueming Li
2023-06-25  6:34 ` patch 'net/mana: return probing failure if no device found' " Xueming Li
2023-06-25  6:34 ` patch 'net/sfc: invalidate dangling MAE flow action FW resource IDs' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix never set MAC flow control' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix variable type mismatch' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix Rx multiple firmware reset interrupts' " Xueming Li
2023-06-25  6:34 ` patch 'ethdev: fix indirect action conversion' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix FEC mode for 200G ports' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix FEC mode check' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix missing FEC capability' " Xueming Li
2023-06-25  6:34 ` patch 'doc: fix format in flow API guide' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix RTC time on initialization' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix RTC time after reset' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: uninitialize PTP' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: extract PTP to its own header file' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix mbuf leakage when RxQ started during reset' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix mbuf leakage when RxQ started after " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix device start return value' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix uninitialized variable' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix inaccurate log' " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix redundant line break in " Xueming Li
2023-06-25  6:34 ` patch 'net/hns3: fix IMP reset trigger' " Xueming Li
2023-06-25  6:34 ` patch 'ethdev: fix calloc arguments' " Xueming Li
2023-06-25  6:34 ` patch 'net/nfp: fix disabling promiscuous mode' " Xueming Li
2023-06-25  6:34 ` patch 'net/nfp: fix IPv6 flow item' " Xueming Li
2023-06-25  6:34 ` patch 'net/nfp: fix TOS of IPv6 VXLAN encap flow action' " Xueming Li
2023-06-25  6:34 ` patch 'net/nfp: fix TOS of IPv6 GENEVE " Xueming Li
2023-06-25  6:34 ` patch 'net/nfp: fix TOS of IPv6 NVGRE " Xueming Li
2023-06-25  6:34 ` patch 'net/nfp: fix control mempool creation' " Xueming Li
2023-06-25  6:34 ` patch 'net/nfp: fix representor " Xueming Li
2023-06-25  6:34 ` patch 'net/nfp: fix flow hash table " Xueming Li
2023-06-25  6:34 ` patch 'net/nfp: fix TP flow action for UDP' " Xueming Li
2023-06-25  6:34 ` patch 'net/vmxnet3: fix return code in initializing' " Xueming Li
2023-06-25  6:34 ` patch 'doc: fix auth algos in cryptoperf app' " Xueming Li
2023-06-25  6:34 ` patch 'crypto/qat: fix stack buffer overflow in SGL loop' " Xueming Li
2023-06-25  6:34 ` patch 'crypto/scheduler: fix last element for valid args' " Xueming Li
2023-06-25  6:34 ` patch 'test/crypto: fix return value for SNOW3G' " Xueming Li
2023-06-25  6:34 ` patch 'examples/ipsec-secgw: fix zero address in ethernet header' " Xueming Li
2023-06-25  6:34 ` patch 'cryptodev: clarify error codes for symmetric session' " Xueming Li
2023-06-25  6:34 ` patch 'crypto/openssl: fix memory free' " Xueming Li
2023-06-25  6:34 ` patch 'test/crypto: fix session creation check' " Xueming Li
2023-06-25  6:34 ` patch 'crypto/ipsec_mb: fix enqueue counter for SNOW3G' " Xueming Li
2023-06-25  6:34 ` patch 'crypto/cnxk: fix IPsec CCM capabilities' " Xueming Li
2023-06-25  6:34 ` patch 'test/crypto: fix IPsec AES CCM vector' " Xueming Li
2023-06-25  6:34 ` patch 'crypto/ipsec_mb: optimize allocation in session' " Xueming Li
2023-06-25  6:35 ` patch 'vhost: fix notification stats for packed ring' " Xueming Li
2023-06-25  6:35 ` patch 'vhost: fix invalid call FD handling' " Xueming Li
2023-06-25  6:35 ` patch 'net/virtio: propagate interrupt configuration error values' " Xueming Li
2023-06-25  6:35 ` patch 'net/virtio: fix initialization to return negative errno' " Xueming Li
2023-06-25  6:35 ` patch 'net/virtio-user: fix leak when initialisation fails' " Xueming Li
2023-06-25  6:35 ` patch 'net/mlx5: enhance error log for tunnel offloading' " Xueming Li
2023-06-25  6:35 ` patch 'net/mlx5: fix matcher layout size calculation' " Xueming Li
2023-06-25  6:35 ` patch 'net/mlx5: fix VXLAN matching with zero value' " Xueming Li
2023-06-25  6:35 ` patch 'net/mlx5: forbid duplicated tag index in pattern template' " Xueming Li
2023-06-25  6:35 ` patch 'net/mlx5: fix duplicated tag index matching in SWS' " Xueming Li
2023-06-25  6:35 ` patch 'net/mlx5: fix drop action attribute validation' " Xueming Li
2023-06-25  6:35 ` patch 'mempool/cnxk: avoid hang when counting batch allocs' " Xueming Li
2023-06-25  6:35 ` patch 'common/cnxk: fix IPsec IPv6 tunnel address byte swap' " Xueming Li
2023-06-25  6:35 ` patch 'event/cnxk: fix Tx adapter data pointer' " Xueming Li
2023-06-25  6:35 ` patch 'event/cnxk: fix mempool cookies check' " Xueming Li
2023-06-25  6:35 ` patch 'common/cnxk: fix setting channel mask for SDP interfaces' " Xueming Li
2023-06-25  6:35 ` patch 'common/cnxk: fix uninitialized pointer read' " Xueming Li
2023-06-25  6:35 ` patch 'common/cnxk: fix inline device VF identification' " Xueming Li
2023-06-25  6:35 ` patch 'common/cnxk: fix receive queue with multiple mask' " Xueming Li
2023-06-25  6:35 ` patch 'net/qede: fix RSS indirection table initialization' " Xueming Li
2023-06-25  6:35 ` patch 'doc: fix typo in cnxk platform guide' " Xueming Li
2023-06-25  6:35 ` patch 'net/i40e: fix Rx data buffer size' " Xueming Li
2023-06-25  6:35 ` patch 'net/ice: " Xueming Li
2023-06-25  6:35 ` patch 'net/iavf: " Xueming Li
2023-06-25  6:35 ` patch 'net/idpf: " Xueming Li
2023-06-25  6:35 ` patch 'common/idpf: remove device stop flag' " Xueming Li
2023-06-25  6:35 ` patch 'common/idpf/base: fix control queue send and receive' " Xueming Li
2023-06-25  6:35 ` patch 'common/idpf/base: fix ITR register definitions for AVF' " Xueming Li
2023-06-25  6:35 ` patch 'common/idpf/base: fix parameters when send msg to cp' " Xueming Li
2023-06-25  6:35 ` patch 'common/idpf/base: fix memory leaks on control queue' " Xueming Li
2023-06-25  6:35 ` patch 'net/ice: fix statistics' " Xueming Li
2023-06-25  6:35 ` patch 'net/ice: fix DCF RSS initialization' " Xueming Li
2023-06-25  6:35 ` patch 'net/iavf: release large VF when closing device' " Xueming Li
2023-06-25  6:35 ` patch 'net/ice: fix DCF control thread crash' " Xueming Li
2023-06-25  6:35 ` patch 'net/ice/base: fix incorrect defines for DCBx' " Xueming Li
2023-06-25  6:35 ` patch 'net/ice/base: remove unreachable code' " Xueming Li
2023-06-25  6:35 ` patch 'net/ice: adjust timestamp mbuf register' " Xueming Li
2023-06-25  6:35 ` patch 'net/ice: fix timestamp enabling' " Xueming Li
2023-06-25  6:35 ` patch 'net/ice: initialize parser for double VLAN' " Xueming Li
2023-06-25  6:35 ` patch 'net/ice: fix outer UDP checksum offload' " Xueming Li
2023-06-25  6:35 ` patch 'net/iavf: fix virtchnl command called in interrupt' " Xueming Li
2023-06-25  6:35 ` patch 'test/mbuf: fix crash in a forked process' " Xueming Li
2023-06-25  6:35 ` patch 'doc: fix typo in graph guide' " Xueming Li
2023-06-25  6:35 ` patch 'doc: remove warning with Doxygen 1.9.7' " Xueming Li
2023-06-25  6:35 ` patch 'dma/dpaa2: set VFA bit for route-by-port with VF' " Xueming Li
2023-08-09 23:47 ` patch " Xueming Li
2023-08-09 23:47   ` patch 'examples/l2fwd-cat: fix external build' " Xueming Li
2023-08-09 23:47   ` patch 'examples/fips_validation: " Xueming Li
2023-08-09 23:47   ` patch 'test: add graph tests' " Xueming Li
2023-08-09 23:47   ` patch 'mbuf: fix Doxygen comment of distributor metadata' " Xueming Li
2023-08-09 23:47   ` patch 'ci: fix libabigail cache in GHA' " Xueming Li
2023-08-09 23:47   ` patch 'common/qat: fix command parameter corruption' " Xueming Li
2023-08-09 23:47   ` patch 'crypto/qat: fix sym device prototype' " Xueming Li
2023-08-09 23:47   ` patch 'crypto/openssl: fix memory leak in auth processing' " Xueming Li
2023-08-09 23:47   ` patch 'crypto/openssl: skip workaround at compilation time' " Xueming Li
2023-08-09 23:47   ` patch 'test/security: fix event inline IPsec reassembly tests' " Xueming Li
2023-08-09 23:47   ` patch 'net/nfp: fix IPv6 address for set flow action' " Xueming Li
2023-08-09 23:47   ` patch 'net/nfp: fix unneeded endian conversion' " Xueming Li
2023-08-09 23:47   ` patch 'net/nfp: fix endian conversion for tunnel decap action' " Xueming Li
2023-08-09 23:47   ` patch 'ethdev: update documentation for API to set FEC' " Xueming Li
2023-08-09 23:47   ` patch 'ethdev: check that at least one FEC mode is specified' " Xueming Li
2023-08-09 23:47   ` patch 'ethdev: update documentation for API to get FEC' " Xueming Li
2023-08-09 23:47   ` patch 'net/nfp: fix VNI of VXLAN encap action' " Xueming Li
2023-08-09 23:47   ` patch 'net/nfp: fix VNI of IPv4 NVGRE " Xueming Li
2023-08-09 23:47   ` patch 'net/nfp: fix VNI of IPv6 " Xueming Li
2023-08-09 23:47   ` patch 'net/bonding: fix startup when NUMA is not supported' " Xueming Li
2023-08-09 23:47   ` patch 'net/bonding: fix destroy dedicated queues flow' " Xueming Li
2023-08-09 23:47   ` patch 'net/txgbe/base: fix Tx with fiber hotplug' " Xueming Li
2023-08-09 23:47   ` patch 'net/txgbe: fix interrupt enable mask' " Xueming Li
2023-08-09 23:47   ` patch 'net/txgbe: adapt to MNG veto bit setting' " Xueming Li
2023-08-09 23:47   ` patch 'net/txgbe: fix to set autoneg for 1G speed' " Xueming Li
2023-08-09 23:47   ` patch 'net/txgbe: fix extended statistics' " Xueming Li
2023-08-09 23:47   ` patch 'net/ngbe: " Xueming Li
2023-08-09 23:47   ` patch 'net/ngbe: adapt to MNG veto bit setting' " Xueming Li
2023-08-09 23:47   ` patch 'net/ngbe: fix link status in no LSC mode' " Xueming Li
2023-08-09 23:47   ` patch 'net/ngbe: remove redundant codes' " Xueming Li
2023-08-09 23:47   ` patch 'app/testpmd: fix primary process not polling all queues' " Xueming Li
2023-08-09 23:47   ` patch 'net/nfp: fix representor name too long' " Xueming Li
2023-08-09 23:47   ` patch 'net/nfp: fix address always related with PF ID 0' " Xueming Li
2023-08-09 23:47   ` patch 'common/sfc_efx/base: fix Rx queue without RSS hash prefix' " Xueming Li
2023-08-09 23:47   ` patch 'net/iavf: fix VLAN offload with AVX512' " Xueming Li
2023-08-09 23:47   ` patch 'net/ice: fix tunnel packet Tx descriptor' " Xueming Li
2023-08-09 23:47   ` patch 'net/ixgbe: add proper memory barriers in Rx' " Xueming Li
2023-08-09 23:48   ` patch 'common/idpf: fix memory leak on AVX512 Tx queue close' " Xueming Li
2023-08-09 23:48   ` patch 'net/iavf: fix abnormal disable HW interrupt' " Xueming Li
2023-08-09 23:48   ` patch 'net/i40e: fix tunnel packet Tx descriptor' " Xueming Li
2023-08-09 23:48   ` patch 'net/e1000: fix queue number initialization' " Xueming Li
2023-08-09 23:48   ` patch 'net/ice: fix MAC type of E822 and E823' " Xueming Li
2023-08-09 23:48   ` patch 'net/ice: fix protocol agnostic offloading with big packets' " Xueming Li
2023-08-09 23:48   ` patch 'net/iavf: " Xueming Li
2023-08-09 23:48   ` patch 'net/mlx5: fix risk in NEON Rx descriptor read' " Xueming Li
2023-08-09 23:48   ` patch 'net/mlx5: fix device removal event handling' " Xueming Li
2023-08-09 23:48   ` patch 'common/mlx5: adjust fork call with new kernel API' " Xueming Li
2023-08-09 23:48   ` patch 'net/cnxk: flush SQ before configuring MTU' " Xueming Li
2023-08-09 23:48   ` patch 'net/cnxk: fix cookies check with security offload' " Xueming Li
2023-08-09 23:48   ` patch 'net/cnxk: fix flow queue index validation' " Xueming Li
2023-08-09 23:48   ` patch 'cryptodev: fix comments of modular operation parameters' " Xueming Li
2023-08-09 23:48   ` patch 'raw/ntb: avoid disabling interrupt twice' " Xueming Li
2023-08-09 23:48   ` patch 'ipc: fix file descriptor leakage with unhandled messages' " Xueming Li
2023-08-09 23:58 ` patch 'devtools: fix mailmap check for parentheses' " Xueming Li
2023-08-09 23:58   ` patch 'fib: fix adding default route' " Xueming Li
2023-08-09 23:58   ` patch 'mem: fix memsegs exhausted message' " Xueming Li
2023-08-09 23:58   ` patch 'hash: fix reading unaligned bits in Toeplitz hash' " Xueming Li
2023-08-09 23:58   ` patch 'member: fix PRNG seed reset in NitroSketch mode' " Xueming Li
2023-08-09 23:58   ` patch 'net/netvsc: fix sizeof calculation' " Xueming Li
2023-08-09 23:58   ` patch 'app/testpmd: fix checksum engine with GTP on 32-bit' " Xueming Li
2023-08-09 23:58   ` patch 'net/hns3: delete duplicate macro definition' " Xueming Li
2023-08-09 23:58   ` patch 'doc: fix kernel patch link in hns3 guide' " Xueming Li
2023-08-09 23:58   ` patch 'doc: fix syntax " Xueming Li
2023-08-09 23:58   ` patch 'doc: fix number of leading spaces " Xueming Li
2023-08-09 23:58   ` patch 'net/txgbe: fix blocking system events' " Xueming Li
2023-08-09 23:58   ` patch 'app/testpmd: revert primary process polling all queues fix' " Xueming Li
2023-08-09 23:58   ` patch 'net/hns3: fix non-zero weight for disabled TC' " Xueming Li
2023-08-09 23:58   ` patch 'app/testpmd: fix flow rule number parsing' " Xueming Li
2023-08-09 23:58   ` patch 'net/mana: fix counter overflow for posted WQE' " Xueming Li
2023-08-09 23:58   ` patch 'net/mana: fix WQE count for ringing RQ doorbell' " Xueming Li
2023-08-09 23:58   ` patch 'net/hns3: fix index to look up table in NEON Rx' " Xueming Li
2023-08-09 23:58   ` patch 'ethdev: fix potential leak in PCI probing helper' " Xueming Li
2023-08-09 23:58   ` patch 'net/mlx5: fix flow dump for modify field' " Xueming Li
2023-08-09 23:58   ` patch 'net/mlx5: fix error set in Tx representor tagging' " Xueming Li
2023-08-09 23:58   ` patch 'net/mlx5: fix return value of vport action' " Xueming Li
2023-08-09 23:58   ` Xueming Li [this message]
2023-08-09 23:58   ` patch 'net/mlx5: fix error set for age pool initialization' " Xueming Li
2023-08-09 23:58   ` patch 'net/mlx5: fix error in VLAN actions creation' " Xueming Li
2023-08-09 23:58   ` patch 'common/mlx5: fix obtaining IB device in LAG mode' " Xueming Li
2023-08-09 23:58   ` patch 'net/mlx5: fix profile check of meter mark' " Xueming Li
2023-08-09 23:59   ` patch 'net/mlx5: reduce counter pool name length' " Xueming Li
2023-08-09 23:59   ` patch 'net/mlx5: fix flow workspace destruction' " Xueming Li
2023-08-09 23:59   ` patch 'net/mlx5: forbid MPRQ restart' " Xueming Li
2023-08-09 23:59   ` patch 'net/mlx5: fix RSS expansion inner buffer overflow' " Xueming Li
2023-08-09 23:59   ` patch 'net/mlx5: fix query for NIC flow capability' " Xueming Li
2023-08-09 23:59   ` patch 'net/ice: fix VLAN mode parser' " Xueming Li
2023-08-09 23:59   ` patch 'net/iavf: fix VLAN insertion in vector path' " Xueming Li
2023-08-09 23:59   ` patch 'net/ice: fix 32-bit build' " Xueming Li
2023-08-09 23:59   ` patch 'net/iavf: fix tunnel TSO path selection' " Xueming Li
2023-08-09 23:59   ` patch 'net/ice: fix RSS hash key generation' " Xueming Li
2023-08-09 23:59   ` patch 'baseband/fpga_5gnr_fec: fix possible division by zero' " Xueming Li
2023-08-09 23:59   ` patch 'baseband/fpga_5gnr_fec: fix starting unconfigured queue' " Xueming Li
2023-08-09 23:59   ` patch 'crypto/qat: fix null algorithm digest placement' " Xueming Li
2023-08-10  0:06 ` Xueming Li
2023-08-10  0:06   ` patch 'common/qat: detach crypto from compress build' " Xueming Li
2023-08-10  0:06   ` patch 'test/crypto: fix PDCP-SDAP test vectors' " Xueming Li
2023-08-10  0:06   ` patch 'examples/fips_validation: fix digest length in AES-GCM' " Xueming Li
2023-08-10  0:06   ` patch 'cryptodev: fix device socket ID type' " Xueming Li
2023-08-10  0:06   ` patch 'app/crypto-perf: fix socket ID default value' " Xueming Li
2023-08-10  0:06   ` patch 'examples/ipsec-secgw: " Xueming Li
2023-08-10  0:06   ` patch 'examples/ipsec-secgw: fix TAP default MAC address' " Xueming Li
2023-08-10  0:06   ` patch 'ipsec: fix NAT-T header length' " Xueming Li
2023-08-10  0:06   ` patch 'examples/l3fwd: fix duplicate expression for default nexthop' " Xueming Li
2023-08-10  0:06   ` patch 'kni: fix build with Linux 6.5' " Xueming Li
2023-08-10  0:10 ` patch 'devtools: fix bashism in mailmap check' " Xueming Li
2023-08-10  0:10   ` patch 'doc: fix typos and wording in flow API guide' " Xueming Li
2023-08-10  0:10   ` patch 'net/i40e: fix comments' " Xueming Li
2023-08-10  0:10   ` patch 'net/iavf: fix stop ordering' " Xueming Li
2023-08-10  0:10   ` patch 'common/iavf: fix MAC type for 710 NIC' " Xueming Li
2023-08-10  0:10   ` patch 'net/ixgbe: fix Rx and Tx queue status' " Xueming Li
2023-08-10  0:10   ` patch 'net/igc: " Xueming Li
2023-08-10  0:10   ` patch 'net/e1000: " Xueming Li
2023-08-10  0:10   ` patch 'net/mlx5: fix drop action memory leak' " Xueming Li
2023-08-10  0:10   ` patch 'net/mlx5: fix LRO TCP checksum' " Xueming Li
2023-08-10  0:10   ` patch 'net/mlx5: fix MPRQ stride size for headroom' " Xueming Li
2023-08-10  0:10   ` patch 'net/mlx5: fix validation for conntrack indirect action' " Xueming Li
2023-08-10  0:10   ` patch 'net/mlx5: fix handle validation for meter mark' " Xueming Li
2023-08-10  0:10   ` patch 'app/testpmd: fix meter mark handle update' " Xueming Li
2023-08-10  0:10   ` patch 'doc: add flow template API requirements for mlx5' " Xueming Li
2023-08-10  0:10   ` patch 'doc: improve wording of cuda guide' " Xueming Li
2023-08-10  0:10   ` patch 'doc: fix description of runtime directories' " Xueming Li
2023-08-10  0:10   ` patch 'doc: update BIOS settings and supported HW for NTB' " Xueming Li
2023-08-10  0:10   ` patch 'doc: fix link to flow capabilities from bnxt guide' " Xueming Li
2023-08-10  0:10   ` patch 'net/mana: fix Tx queue statistics' " Xueming Li
2023-08-10  0:10   ` patch 'net/ngbe: fix RSS offload capability' " Xueming Li
2023-08-10  0:10   ` patch 'test/bonding: fix include of standard header' " Xueming Li
2023-08-10  0:10   ` patch 'net/nfp: fix Tx descriptor free logic of NFD3' " Xueming Li
2023-08-10  0:10   ` patch 'net/nfp: fix offloading flows' " Xueming Li
2023-08-10  0:10   ` patch 'common/cnxk: fix CPT backpressure disable on LBK' " Xueming Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230809235947.1187-23-xuemingl@nvidia.com \
    --to=xuemingl@nvidia.com \
    --cc=bingz@nvidia.com \
    --cc=orika@nvidia.com \
    --cc=stable@dpdk.org \
    --cc=suanmingm@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).