net/mlx5: HWS, Init mutex on the correct path
authorVlad Dogaru <vdogaru@nvidia.com>
Tue, 10 Jun 2025 15:15:09 +0000 (18:15 +0300)
committerJakub Kicinski <kuba@kernel.org>
Wed, 11 Jun 2025 21:41:09 +0000 (14:41 -0700)
The newly introduced mutex is only used for reformat actions, but it was
initialized for modify header instead.

The struct that contains the mutex is zero-initialized and an all-zero
mutex is valid, so the issue only shows up with CONFIG_DEBUG_MUTEXES.

Fixes: b206d9ec19df ("net/mlx5: HWS, register reformat actions with fw")
Signed-off-by: Vlad Dogaru <vdogaru@nvidia.com>
Reviewed-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
Signed-off-by: Mark Bloch <mbloch@nvidia.com>
Link: https://patch.msgid.link/20250610151514.1094735-5-mbloch@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws.c

index 9d1c0e4b224ad1d3c8b71be1e387b8ff9702b794..372e2be907067e3bd3246477609d0b3e4b64247c 100644 (file)
@@ -1357,6 +1357,7 @@ mlx5_cmd_hws_packet_reformat_alloc(struct mlx5_flow_root_namespace *ns,
                pkt_reformat->fs_hws_action.pr_data = pr_data;
        }
 
+       mutex_init(&pkt_reformat->fs_hws_action.lock);
        pkt_reformat->owner = MLX5_FLOW_RESOURCE_OWNER_HWS;
        pkt_reformat->fs_hws_action.hws_action = hws_action;
        return 0;
@@ -1503,7 +1504,6 @@ static int mlx5_cmd_hws_modify_header_alloc(struct mlx5_flow_root_namespace *ns,
                err = -ENOMEM;
                goto release_mh;
        }
-       mutex_init(&modify_hdr->fs_hws_action.lock);
        modify_hdr->fs_hws_action.mh_data = mh_data;
        modify_hdr->fs_hws_action.fs_pool = pool;
        modify_hdr->owner = MLX5_FLOW_RESOURCE_OWNER_SW;