net/mlx4_en: fix a memory leak bug
In mlx4_en_config_rss_steer(), 'rss_map->indir_qp' is allocated through
kzalloc(). After that, mlx4_qp_alloc() is invoked to configure RSS
indirection. However, if mlx4_qp_alloc() fails, the allocated
'rss_map->indir_qp' is not deallocated, leading to a memory leak bug.
To fix the above issue, add the 'qp_alloc_err' label to free
'rss_map->indir_qp'.
Fixes: 4931c6ef04
("net/mlx4_en: Optimized single ring steering")
Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
This commit is contained in:
Родитель
66cf4710b2
Коммит
48ec7014c5
|
@ -1187,7 +1187,7 @@ int mlx4_en_config_rss_steer(struct mlx4_en_priv *priv)
|
|||
err = mlx4_qp_alloc(mdev->dev, priv->base_qpn, rss_map->indir_qp);
|
||||
if (err) {
|
||||
en_err(priv, "Failed to allocate RSS indirection QP\n");
|
||||
goto rss_err;
|
||||
goto qp_alloc_err;
|
||||
}
|
||||
|
||||
rss_map->indir_qp->event = mlx4_en_sqp_event;
|
||||
|
@ -1241,6 +1241,7 @@ indir_err:
|
|||
MLX4_QP_STATE_RST, NULL, 0, 0, rss_map->indir_qp);
|
||||
mlx4_qp_remove(mdev->dev, rss_map->indir_qp);
|
||||
mlx4_qp_free(mdev->dev, rss_map->indir_qp);
|
||||
qp_alloc_err:
|
||||
kfree(rss_map->indir_qp);
|
||||
rss_map->indir_qp = NULL;
|
||||
rss_err:
|
||||
|
|
Загрузка…
Ссылка в новой задаче