Skip to content

Commit d8c5617

Browse files
kliteynSaeed Mahameed
authored andcommitted
net/mlx5: HWS, fixed double-free in error flow of creating SQ
When SQ creation fails, call the appropriate mlx5_core destroy function. This fixes the following smatch warnings: divers/net/ethernet/mellanox/mlx5/core/steering/hws/mlx5hws_send.c:739 hws_send_ring_open_sq() warn: 'sq->dep_wqe' double freed hws_send_ring_open_sq() warn: 'sq->wq_ctrl.buf.frags' double freed hws_send_ring_open_sq() warn: 'sq->wr_priv' double freed Fixes: 2ca6259 ("net/mlx5: HWS, added send engine and context handling") Reported-by: Dan Carpenter <[email protected]> Closes: https://lore.kernel.org/all/[email protected]/ Signed-off-by: Yevgeny Kliteynik <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]>
1 parent 19da170 commit d8c5617

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

drivers/net/ethernet/mellanox/mlx5/core/steering/hws/mlx5hws_send.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -653,6 +653,12 @@ static int hws_send_ring_create_sq(struct mlx5_core_dev *mdev, u32 pdn,
653653
return err;
654654
}
655655

656+
static void hws_send_ring_destroy_sq(struct mlx5_core_dev *mdev,
657+
struct mlx5hws_send_ring_sq *sq)
658+
{
659+
mlx5_core_destroy_sq(mdev, sq->sqn);
660+
}
661+
656662
static int hws_send_ring_set_sq_rdy(struct mlx5_core_dev *mdev, u32 sqn)
657663
{
658664
void *in, *sqc;
@@ -696,7 +702,7 @@ static int hws_send_ring_create_sq_rdy(struct mlx5_core_dev *mdev, u32 pdn,
696702

697703
err = hws_send_ring_set_sq_rdy(mdev, sq->sqn);
698704
if (err)
699-
hws_send_ring_close_sq(sq);
705+
hws_send_ring_destroy_sq(mdev, sq);
700706

701707
return err;
702708
}

0 commit comments

Comments
 (0)