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: [email protected]
Cc: [email protected]
Signed-off-by: Bing Zhao <[email protected]>
Acked-by: Viacheslav Ovsiienko <[email protected]>
---
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