Fix segmentation fault when a user will request to allocate
a HWS action while current device doesn't support HWS.

Fixes: f8c8a6d ("net/mlx5/hws: add action object")
Signed-off-by: Alex Vesker <va...@nvidia.com>
Reviewed-by: Erez Shitrit <ere...@nvidia.com>
Acked-by: Matan Azrad <ma...@nvidia.com>
---
 drivers/net/mlx5/hws/mlx5dr_action.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/mlx5/hws/mlx5dr_action.c 
b/drivers/net/mlx5/hws/mlx5dr_action.c
index a9e12aa1f5..b0ae4e7693 100644
--- a/drivers/net/mlx5/hws/mlx5dr_action.c
+++ b/drivers/net/mlx5/hws/mlx5dr_action.c
@@ -697,6 +697,13 @@ mlx5dr_action_create_generic(struct mlx5dr_context *ctx,
                return NULL;
        }
 
+       if (mlx5dr_action_is_hws_flags(flags) &&
+           !(ctx->flags & MLX5DR_CONTEXT_FLAG_HWS_SUPPORT)) {
+               DR_LOG(ERR, "Cannot create HWS action since HWS is not 
supported");
+               rte_errno = ENOTSUP;
+               return NULL;
+       }
+
        action = simple_calloc(1, sizeof(*action));
        if (!action) {
                DR_LOG(ERR, "Failed to allocate memory for action [%d]", 
action_type);
-- 
2.18.1

Reply via email to