| From 5b45fef2f77945c4d3efd04ead0752a074e0dfd2 Mon Sep 17 00:00:00 2001 |
| From: Gavi Teitz <gavi@mellanox.com> |
| Date: Mon, 11 Mar 2019 11:56:34 +0200 |
| Subject: net/mlx5e: Fix error handling when refreshing TIRs |
| |
| [ Upstream commit bc87a0036826a37b43489b029af8143bd07c6cca ] |
| |
| Previously, a false positive would be caught if the TIRs list is |
| empty, since the err value was initialized to -ENOMEM, and was only |
| updated if a TIR is refreshed. This is resolved by initializing the |
| err value to zero. |
| |
| Fixes: b676f653896a ("net/mlx5e: Refactor refresh TIRs") |
| Signed-off-by: Gavi Teitz <gavi@mellanox.com> |
| Reviewed-by: Roi Dayan <roid@mellanox.com> |
| Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/mellanox/mlx5/core/en_common.c | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_common.c b/drivers/net/ethernet/mellanox/mlx5/core/en_common.c |
| index 3078491cc0d0..8100786f6fb5 100644 |
| --- a/drivers/net/ethernet/mellanox/mlx5/core/en_common.c |
| +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_common.c |
| @@ -141,15 +141,17 @@ int mlx5e_refresh_tirs(struct mlx5e_priv *priv, bool enable_uc_lb) |
| { |
| struct mlx5_core_dev *mdev = priv->mdev; |
| struct mlx5e_tir *tir; |
| - int err = -ENOMEM; |
| + int err = 0; |
| u32 tirn = 0; |
| int inlen; |
| void *in; |
| |
| inlen = MLX5_ST_SZ_BYTES(modify_tir_in); |
| in = kvzalloc(inlen, GFP_KERNEL); |
| - if (!in) |
| + if (!in) { |
| + err = -ENOMEM; |
| goto out; |
| + } |
| |
| if (enable_uc_lb) |
| MLX5_SET(modify_tir_in, in, ctx.self_lb_block, |
| -- |
| 2.19.1 |
| |