提交 e3e01c1c 编写于 作者: M Maher Sanalla 提交者: Saeed Mahameed

net/mlx5: Fix memory leak in error flow of port set buffer

In the cited commit, shared buffer updates were added whenever
port buffer gets updated.

However, in case the shared buffer update fails, exiting early from
port_set_buffer() is performed without freeing previously-allocated memory.

Fix it by jumping to out label where memory is freed before returning
with error.

Fixes: a440030d ("net/mlx5e: Update shared buffer along with device buffer changes")
Signed-off-by: NMaher Sanalla <msanalla@nvidia.com>
Reviewed-by: NMoshe Shemesh <moshe@nvidia.com>
Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
上级 1e985a8d
...@@ -314,11 +314,11 @@ static int port_set_buffer(struct mlx5e_priv *priv, ...@@ -314,11 +314,11 @@ static int port_set_buffer(struct mlx5e_priv *priv,
err = port_update_shared_buffer(priv->mdev, current_headroom_size, err = port_update_shared_buffer(priv->mdev, current_headroom_size,
new_headroom_size); new_headroom_size);
if (err) if (err)
return err; goto out;
err = port_update_pool_cfg(priv->mdev, port_buffer); err = port_update_pool_cfg(priv->mdev, port_buffer);
if (err) if (err)
return err; goto out;
err = mlx5e_port_set_pbmc(mdev, in); err = mlx5e_port_set_pbmc(mdev, in);
out: out:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册