When creating a meter_mark action, the profile should be specified. Or else there would be a crash if the pointer to the profile was not set properly: 1. creating an action template with only action mask set and using this template to create a table 2. creating a flow rule without setting the profile if the action of meter_mark is not fixed
The check should be done inside the action allocation and an error needs to be returned immediately. Fixes: 48fbb0e93d06 ("net/mlx5: support flow meter mark indirect action with HWS") Cc: akozy...@nvidia.com Cc: sta...@dpdk.org Signed-off-by: Bing Zhao <bi...@nvidia.com> Acked-by: Viacheslav Ovsiienko <viachesl...@nvidia.com> --- drivers/net/mlx5/mlx5_flow_hw.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c index b5137a822a..c64b260fea 100644 --- a/drivers/net/mlx5/mlx5_flow_hw.c +++ b/drivers/net/mlx5/mlx5_flow_hw.c @@ -1325,6 +1325,8 @@ flow_hw_meter_mark_alloc(struct rte_eth_dev *dev, uint32_t queue, struct mlx5_flow_meter_info *fm; uint32_t mtr_id; + if (meter_mark->profile == NULL) + return NULL; aso_mtr = mlx5_ipool_malloc(priv->hws_mpool->idx_pool, &mtr_id); if (!aso_mtr) return NULL; -- 2.34.1