diff mbox series

net/mlx5: Use kfree(ft->g) in arfs_create_groups()

Message ID 20200605192235.79241-1-efremov@linux.com
State Awaiting Upstream
Delegated to: David Miller
Headers show
Series net/mlx5: Use kfree(ft->g) in arfs_create_groups() | expand

Commit Message

Denis Efremov June 5, 2020, 7:22 p.m. UTC
Use kfree() instead of kvfree() on ft->g in arfs_create_groups() because
the memory is allocated with kcalloc().

Signed-off-by: Denis Efremov <efremov@linux.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Eric Dumazet June 5, 2020, 7:57 p.m. UTC | #1
On 6/5/20 12:22 PM, Denis Efremov wrote:
> Use kfree() instead of kvfree() on ft->g in arfs_create_groups() because
> the memory is allocated with kcalloc().
> 
> Signed-off-by: Denis Efremov <efremov@linux.com>
> ---
>  drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 2 +-
>  1 file changed, 1 insertion(+), 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 014639ea06e3..c4c9d6cda7e6 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c
> @@ -220,7 +220,7 @@ static int arfs_create_groups(struct mlx5e_flow_table *ft,
>  			sizeof(*ft->g), GFP_KERNEL);
>  	in = kvzalloc(inlen, GFP_KERNEL);
>  	if  (!in || !ft->g) {
> -		kvfree(ft->g);
> +		kfree(ft->g);
>  		kvfree(in);
>  		return -ENOMEM;
>  	}
> 

This is slow path, kvfree() is perfectly able to free memory that was kmalloc()ed

net-next is closed, can we avoid these patches during merge window ?
Saeed Mahameed June 11, 2020, 10:08 p.m. UTC | #2
On Fri, 2020-06-05 at 12:57 -0700, Eric Dumazet wrote:
> 
> On 6/5/20 12:22 PM, Denis Efremov wrote:
> > Use kfree() instead of kvfree() on ft->g in arfs_create_groups()
> > because
> > the memory is allocated with kcalloc().
> > 
> > Signed-off-by: Denis Efremov <efremov@linux.com>
> > ---
> >  drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 2 +-
> >  1 file changed, 1 insertion(+), 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 014639ea06e3..c4c9d6cda7e6 100644
> > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c
> > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c
> > @@ -220,7 +220,7 @@ static int arfs_create_groups(struct
> > mlx5e_flow_table *ft,
> >  			sizeof(*ft->g), GFP_KERNEL);
> >  	in = kvzalloc(inlen, GFP_KERNEL);
> >  	if  (!in || !ft->g) {
> > -		kvfree(ft->g);
> > +		kfree(ft->g);
> >  		kvfree(in);
> >  		return -ENOMEM;
> >  	}
> > 
> 
> This is slow path, kvfree() is perfectly able to free memory that was
> kmalloc()ed
> 
> net-next is closed, can we avoid these patches during merge window ?

I agree, with Eric, better if we wait for net-next to open.

I will apply this once net-next is open. 

Thanks,
Saeed.
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 014639ea06e3..c4c9d6cda7e6 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c
@@ -220,7 +220,7 @@  static int arfs_create_groups(struct mlx5e_flow_table *ft,
 			sizeof(*ft->g), GFP_KERNEL);
 	in = kvzalloc(inlen, GFP_KERNEL);
 	if  (!in || !ft->g) {
-		kvfree(ft->g);
+		kfree(ft->g);
 		kvfree(in);
 		return -ENOMEM;
 	}