When the code execute 'if (!priv->fs.arfs->wq)', the value of err is 0. So, we use -ENOMEM to indicate that the function create_singlethread_workqueue() return NULL. Clean up smatch warning: drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c:373 mlx5e_arfs_create_tables() warn: missing error code 'err'. Reported-by: Abaci Robot <abaci@xxxxxxxxxxxxxxxxx> Fixes: 'commit f6755b80d693 ("net/mlx5e: Dynamic alloc arfs table for netdev when needed")' Signed-off-by: Yang Li <yang.lee@xxxxxxxxxxxxxxxxx> --- drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c b/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c index 5cd466e..2949437 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c @@ -369,8 +369,10 @@ int mlx5e_arfs_create_tables(struct mlx5e_priv *priv) spin_lock_init(&priv->fs.arfs->arfs_lock); INIT_LIST_HEAD(&priv->fs.arfs->rules); priv->fs.arfs->wq = create_singlethread_workqueue("mlx5e_arfs"); - if (!priv->fs.arfs->wq) + if (!priv->fs.arfs->wq) { + err = -ENOMEM; goto err; + } for (i = 0; i < ARFS_NUM_TYPES; i++) { err = arfs_create_table(priv, i); -- 1.8.3.1