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 |
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 ?
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 --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; }
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(-)