diff mbox series

net/mlx5e: Fix an error code in mlx5e_arfs_create_tables()

Message ID 1622628553-89257-1-git-send-email-yang.lee@linux.alibaba.com (mailing list archive)
State Superseded
Headers show
Series net/mlx5e: Fix an error code in mlx5e_arfs_create_tables() | expand

Commit Message

Yang Li June 2, 2021, 10:09 a.m. UTC
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@linux.alibaba.com>
Fixes: 'commit f6755b80d693 ("net/mlx5e: Dynamic alloc arfs table for netdev when needed")'
Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Mark Zhang June 2, 2021, 11:49 a.m. UTC | #1
On 6/2/2021 6:09 PM, Yang Li wrote:
> 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@linux.alibaba.com>
> Fixes: 'commit f6755b80d693 ("net/mlx5e: Dynamic alloc arfs table for netdev when needed")'
> Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
> ---
>   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);

Maybe also need to "destroy_workqueue(priv->fs.arfs->wq);" in err_des.
Saeed Mahameed June 3, 2021, 7:28 p.m. UTC | #2
On Wed, 2021-06-02 at 19:49 +0800, Mark Zhang wrote:
> On 6/2/2021 6:09 PM, Yang Li wrote:
> > 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@linux.alibaba.com>
> > Fixes: 'commit f6755b80d693 ("net/mlx5e: Dynamic alloc arfs table
> > for netdev when needed")'

This is not the right format.

Please use the following command to generate the fixes tag:
git log -1 --abbrev=12 --format='Fixes: %h ("%s")' f6755b80d693

> > Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
> > ---
> >   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;
> > +       }
> >   

you can just initialize err to -ENOMEM; on declaration. 

> >         for (i = 0; i < ARFS_NUM_TYPES; i++) {
> >                 err = arfs_create_table(priv, i);
> 
> Maybe also need to "destroy_workqueue(priv->fs.arfs->wq);" in
> err_des.

yes, it can be in the same patch.

Thanks a lot.
diff mbox series

Patch

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);