Commit 3afa3ae3 authored by Chiara Meiohas's avatar Chiara Meiohas Committed by Jakub Kicinski
Browse files

net/mlx5: Fix memory leak in cmd_exec()



If cmd_exec() is called with callback and mlx5_cmd_invoke() returns an
error, resources allocated in cmd_exec() will not be freed.

Fix the code to release the resources if mlx5_cmd_invoke() returns an
error.

Fixes: f0864701 ("net/mlx5: cmdif, Return value improvements")
Reported-by: default avatarAlex Tereshkin <atereshkin@nvidia.com>
Signed-off-by: default avatarChiara Meiohas <cmeiohas@nvidia.com>
Reviewed-by: default avatarMoshe Shemesh <moshe@nvidia.com>
Signed-off-by: default avatarVlad Dumitrescu <vdumitrescu@nvidia.com>
Signed-off-by: default avatarTariq Toukan <tariqt@nvidia.com>
Reviewed-by: default avatarSimon Horman <horms@kernel.org>
Link: https://patch.msgid.link/1752753970-261832-2-git-send-email-tariqt@nvidia.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 6e86fb73
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1947,8 +1947,8 @@ static int cmd_exec(struct mlx5_core_dev *dev, void *in, int in_size, void *out,

	err = mlx5_cmd_invoke(dev, inb, outb, out, out_size, callback, context,
			      pages_queue, token, force_polling);
	if (callback)
		return err;
	if (callback && !err)
		return 0;

	if (err > 0) /* Failed in FW, command didn't execute */
		err = deliv_status_to_err(err);