2021-07-16 10:54:00

by Jiapeng Chong

[permalink] [raw]
Subject: [PATCH] net/mlx5: Fix missing error code in mlx5_devlink_eswitch_inline_mode_set()

The error code is missing in this code scenario, add the error code
'-EINVAL' to the return value 'err'.

Eliminate the follow smatch warning:

vers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c:3083
mlx5_devlink_eswitch_inline_mode_set() warn: missing error code 'err'.

Reported-by: Abaci Robot <[email protected]>
Signed-off-by: Jiapeng Chong <[email protected]>
---
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index 7579f34..b38b6c1 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -3079,8 +3079,10 @@ int mlx5_devlink_eswitch_inline_mode_set(struct devlink *devlink, u8 mode,

switch (MLX5_CAP_ETH(dev, wqe_inline_mode)) {
case MLX5_CAP_INLINE_MODE_NOT_REQUIRED:
- if (mode == DEVLINK_ESWITCH_INLINE_MODE_NONE)
+ if (mode == DEVLINK_ESWITCH_INLINE_MODE_NONE) {
+ err = -EINVAL;
goto out;
+ }
fallthrough;
case MLX5_CAP_INLINE_MODE_L2:
NL_SET_ERR_MSG_MOD(extack, "Inline mode can't be set");
--
1.8.3.1


2021-07-18 09:34:49

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH] net/mlx5: Fix missing error code in mlx5_devlink_eswitch_inline_mode_set()

On Fri, Jul 16, 2021 at 06:52:08PM +0800, Jiapeng Chong wrote:
> The error code is missing in this code scenario, add the error code
> '-EINVAL' to the return value 'err'.
>
> Eliminate the follow smatch warning:
>
> vers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c:3083
> mlx5_devlink_eswitch_inline_mode_set() warn: missing error code 'err'.
>
> Reported-by: Abaci Robot <[email protected]>
> Signed-off-by: Jiapeng Chong <[email protected]>
> ---
> drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
> index 7579f34..b38b6c1 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
> @@ -3079,8 +3079,10 @@ int mlx5_devlink_eswitch_inline_mode_set(struct devlink *devlink, u8 mode,
>
> switch (MLX5_CAP_ETH(dev, wqe_inline_mode)) {
> case MLX5_CAP_INLINE_MODE_NOT_REQUIRED:
> - if (mode == DEVLINK_ESWITCH_INLINE_MODE_NONE)
> + if (mode == DEVLINK_ESWITCH_INLINE_MODE_NONE) {
> + err = -EINVAL;

This change is wrong, it should be err = 0;
and please add Fixes line.
Fixes: 8e0aa4bc959c ("net/mlx5: E-switch, Protect eswitch mode changes")

> goto out;
> + }
> fallthrough;
> case MLX5_CAP_INLINE_MODE_L2:
> NL_SET_ERR_MSG_MOD(extack, "Inline mode can't be set");
> --
> 1.8.3.1
>