* [PATCH v1] mellanox: Switch to bitmap_zalloc()
@ 2019-03-04 8:57 Andy Shevchenko
2019-03-04 11:59 ` Jiri Pirko
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Andy Shevchenko @ 2019-03-04 8:57 UTC (permalink / raw)
To: David S. Miller, netdev, Saeed Mahameed, Leon Romanovsky,
Jiri Pirko, Ido Schimmel, linux-rdma
Cc: Andy Shevchenko
Switch to bitmap_zalloc() to show clearly what we are allocating.
Besides that it returns pointer of bitmap type instead of opaque void *.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/net/ethernet/mellanox/mlx4/alloc.c | 5 ++---
drivers/net/ethernet/mellanox/mlx5/core/alloc.c | 9 +++------
drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c | 5 ++---
drivers/net/ethernet/mellanox/mlx5/core/uar.c | 12 ++++++------
drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c | 7 +++----
5 files changed, 16 insertions(+), 22 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx4/alloc.c b/drivers/net/ethernet/mellanox/mlx4/alloc.c
index dbc483e4a2ef..b330020dc0d6 100644
--- a/drivers/net/ethernet/mellanox/mlx4/alloc.c
+++ b/drivers/net/ethernet/mellanox/mlx4/alloc.c
@@ -185,8 +185,7 @@ int mlx4_bitmap_init(struct mlx4_bitmap *bitmap, u32 num, u32 mask,
bitmap->avail = num - reserved_top - reserved_bot;
bitmap->effective_len = bitmap->avail;
spin_lock_init(&bitmap->lock);
- bitmap->table = kcalloc(BITS_TO_LONGS(bitmap->max), sizeof(long),
- GFP_KERNEL);
+ bitmap->table = bitmap_zalloc(bitmap->max, GFP_KERNEL);
if (!bitmap->table)
return -ENOMEM;
@@ -197,7 +196,7 @@ int mlx4_bitmap_init(struct mlx4_bitmap *bitmap, u32 num, u32 mask,
void mlx4_bitmap_cleanup(struct mlx4_bitmap *bitmap)
{
- kfree(bitmap->table);
+ bitmap_free(bitmap->table);
}
struct mlx4_zone_allocator {
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/alloc.c b/drivers/net/ethernet/mellanox/mlx5/core/alloc.c
index 421b9c3c8bf7..9008e17126db 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/alloc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/alloc.c
@@ -186,10 +186,7 @@ static struct mlx5_db_pgdir *mlx5_alloc_db_pgdir(struct mlx5_core_dev *dev,
if (!pgdir)
return NULL;
- pgdir->bitmap = kcalloc(BITS_TO_LONGS(db_per_page),
- sizeof(unsigned long),
- GFP_KERNEL);
-
+ pgdir->bitmap = bitmap_zalloc(db_per_page, GFP_KERNEL);
if (!pgdir->bitmap) {
kfree(pgdir);
return NULL;
@@ -200,7 +197,7 @@ static struct mlx5_db_pgdir *mlx5_alloc_db_pgdir(struct mlx5_core_dev *dev,
pgdir->db_page = mlx5_dma_zalloc_coherent_node(dev, PAGE_SIZE,
&pgdir->db_dma, node);
if (!pgdir->db_page) {
- kfree(pgdir->bitmap);
+ bitmap_free(pgdir->bitmap);
kfree(pgdir);
return NULL;
}
@@ -280,7 +277,7 @@ void mlx5_db_free(struct mlx5_core_dev *dev, struct mlx5_db *db)
dma_free_coherent(&(dev->pdev->dev), PAGE_SIZE,
db->u.pgdir->db_page, db->u.pgdir->db_dma);
list_del(&db->u.pgdir->list);
- kfree(db->u.pgdir->bitmap);
+ bitmap_free(db->u.pgdir->bitmap);
kfree(db->u.pgdir);
}
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c
index 98359559c77e..a71d5b9c7ab2 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c
@@ -108,8 +108,7 @@ int mlx5_mpfs_init(struct mlx5_core_dev *dev)
mutex_init(&mpfs->lock);
mpfs->size = l2table_size;
- mpfs->bitmap = kcalloc(BITS_TO_LONGS(l2table_size),
- sizeof(uintptr_t), GFP_KERNEL);
+ mpfs->bitmap = bitmap_zalloc(l2table_size, GFP_KERNEL);
if (!mpfs->bitmap) {
kfree(mpfs);
return -ENOMEM;
@@ -127,7 +126,7 @@ void mlx5_mpfs_cleanup(struct mlx5_core_dev *dev)
return;
WARN_ON(!hlist_empty(mpfs->hash));
- kfree(mpfs->bitmap);
+ bitmap_free(mpfs->bitmap);
kfree(mpfs);
}
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/uar.c b/drivers/net/ethernet/mellanox/mlx5/core/uar.c
index 8b97066dd1f1..94464723ff77 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/uar.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/uar.c
@@ -90,8 +90,8 @@ static void up_rel_func(struct kref *kref)
iounmap(up->map);
if (mlx5_cmd_free_uar(up->mdev, up->index))
mlx5_core_warn(up->mdev, "failed to free uar index %d\n", up->index);
- kfree(up->reg_bitmap);
- kfree(up->fp_bitmap);
+ bitmap_free(up->reg_bitmap);
+ bitmap_free(up->fp_bitmap);
kfree(up);
}
@@ -110,11 +110,11 @@ static struct mlx5_uars_page *alloc_uars_page(struct mlx5_core_dev *mdev,
return ERR_PTR(err);
up->mdev = mdev;
- up->reg_bitmap = kcalloc(BITS_TO_LONGS(bfregs), sizeof(unsigned long), GFP_KERNEL);
+ up->reg_bitmap = bitmap_zalloc(bfregs, GFP_KERNEL);
if (!up->reg_bitmap)
goto error1;
- up->fp_bitmap = kcalloc(BITS_TO_LONGS(bfregs), sizeof(unsigned long), GFP_KERNEL);
+ up->fp_bitmap = bitmap_zalloc(bfregs, GFP_KERNEL);
if (!up->fp_bitmap)
goto error1;
@@ -157,8 +157,8 @@ static struct mlx5_uars_page *alloc_uars_page(struct mlx5_core_dev *mdev,
if (mlx5_cmd_free_uar(mdev, up->index))
mlx5_core_warn(mdev, "failed to free uar index %d\n", up->index);
error1:
- kfree(up->fp_bitmap);
- kfree(up->reg_bitmap);
+ bitmap_free(up->fp_bitmap);
+ bitmap_free(up->reg_bitmap);
kfree(up);
return ERR_PTR(err);
}
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c
index 9d9aa28684af..46baf3b44309 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c
@@ -1188,8 +1188,7 @@ static int mlxsw_sp_fid_family_register(struct mlxsw_sp *mlxsw_sp,
fid_family->mlxsw_sp = mlxsw_sp;
INIT_LIST_HEAD(&fid_family->fids_list);
- fid_family->fids_bitmap = kcalloc(BITS_TO_LONGS(nr_fids),
- sizeof(unsigned long), GFP_KERNEL);
+ fid_family->fids_bitmap = bitmap_zalloc(nr_fids, GFP_KERNEL);
if (!fid_family->fids_bitmap) {
err = -ENOMEM;
goto err_alloc_fids_bitmap;
@@ -1206,7 +1205,7 @@ static int mlxsw_sp_fid_family_register(struct mlxsw_sp *mlxsw_sp,
return 0;
err_fid_flood_tables_init:
- kfree(fid_family->fids_bitmap);
+ bitmap_free(fid_family->fids_bitmap);
err_alloc_fids_bitmap:
kfree(fid_family);
return err;
@@ -1217,7 +1216,7 @@ mlxsw_sp_fid_family_unregister(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_fid_family *fid_family)
{
mlxsw_sp->fid_core->fid_family_arr[fid_family->type] = NULL;
- kfree(fid_family->fids_bitmap);
+ bitmap_free(fid_family->fids_bitmap);
WARN_ON_ONCE(!list_empty(&fid_family->fids_list));
kfree(fid_family);
}
--
2.20.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v1] mellanox: Switch to bitmap_zalloc()
2019-03-04 8:57 [PATCH v1] mellanox: Switch to bitmap_zalloc() Andy Shevchenko
@ 2019-03-04 11:59 ` Jiri Pirko
2019-03-04 18:15 ` David Miller
2019-03-04 12:02 ` Tariq Toukan
2019-03-04 18:19 ` David Miller
2 siblings, 1 reply; 5+ messages in thread
From: Jiri Pirko @ 2019-03-04 11:59 UTC (permalink / raw)
To: Andy Shevchenko
Cc: David S. Miller, netdev, Saeed Mahameed, Leon Romanovsky,
Jiri Pirko, Ido Schimmel, linux-rdma
Mon, Mar 04, 2019 at 09:57:00AM CET, andriy.shevchenko@linux.intel.com wrote:
>Switch to bitmap_zalloc() to show clearly what we are allocating.
>Besides that it returns pointer of bitmap type instead of opaque void *.
>
>Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Hoever, net-next is closed now, so you might have to repost after it
opens again.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v1] mellanox: Switch to bitmap_zalloc()
2019-03-04 8:57 [PATCH v1] mellanox: Switch to bitmap_zalloc() Andy Shevchenko
2019-03-04 11:59 ` Jiri Pirko
@ 2019-03-04 12:02 ` Tariq Toukan
2019-03-04 18:19 ` David Miller
2 siblings, 0 replies; 5+ messages in thread
From: Tariq Toukan @ 2019-03-04 12:02 UTC (permalink / raw)
To: Andy Shevchenko, David S. Miller, netdev, Saeed Mahameed,
Leon Romanovsky, Jiri Pirko, Ido Schimmel, linux-rdma
On 3/4/2019 10:57 AM, Andy Shevchenko wrote:
> Switch to bitmap_zalloc() to show clearly what we are allocating.
> Besides that it returns pointer of bitmap type instead of opaque void *.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> drivers/net/ethernet/mellanox/mlx4/alloc.c | 5 ++---
> drivers/net/ethernet/mellanox/mlx5/core/alloc.c | 9 +++------
> drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c | 5 ++---
> drivers/net/ethernet/mellanox/mlx5/core/uar.c | 12 ++++++------
> drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c | 7 +++----
> 5 files changed, 16 insertions(+), 22 deletions(-)
>
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
Thanks for your patch.
> diff --git a/drivers/net/ethernet/mellanox/mlx4/alloc.c b/drivers/net/ethernet/mellanox/mlx4/alloc.c
> index dbc483e4a2ef..b330020dc0d6 100644
> --- a/drivers/net/ethernet/mellanox/mlx4/alloc.c
> +++ b/drivers/net/ethernet/mellanox/mlx4/alloc.c
> @@ -185,8 +185,7 @@ int mlx4_bitmap_init(struct mlx4_bitmap *bitmap, u32 num, u32 mask,
> bitmap->avail = num - reserved_top - reserved_bot;
> bitmap->effective_len = bitmap->avail;
> spin_lock_init(&bitmap->lock);
> - bitmap->table = kcalloc(BITS_TO_LONGS(bitmap->max), sizeof(long),
> - GFP_KERNEL);
> + bitmap->table = bitmap_zalloc(bitmap->max, GFP_KERNEL);
> if (!bitmap->table)
> return -ENOMEM;
>
> @@ -197,7 +196,7 @@ int mlx4_bitmap_init(struct mlx4_bitmap *bitmap, u32 num, u32 mask,
>
> void mlx4_bitmap_cleanup(struct mlx4_bitmap *bitmap)
> {
> - kfree(bitmap->table);
> + bitmap_free(bitmap->table);
> }
>
> struct mlx4_zone_allocator {
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/alloc.c b/drivers/net/ethernet/mellanox/mlx5/core/alloc.c
> index 421b9c3c8bf7..9008e17126db 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/alloc.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/alloc.c
> @@ -186,10 +186,7 @@ static struct mlx5_db_pgdir *mlx5_alloc_db_pgdir(struct mlx5_core_dev *dev,
> if (!pgdir)
> return NULL;
>
> - pgdir->bitmap = kcalloc(BITS_TO_LONGS(db_per_page),
> - sizeof(unsigned long),
> - GFP_KERNEL);
> -
> + pgdir->bitmap = bitmap_zalloc(db_per_page, GFP_KERNEL);
> if (!pgdir->bitmap) {
> kfree(pgdir);
> return NULL;
> @@ -200,7 +197,7 @@ static struct mlx5_db_pgdir *mlx5_alloc_db_pgdir(struct mlx5_core_dev *dev,
> pgdir->db_page = mlx5_dma_zalloc_coherent_node(dev, PAGE_SIZE,
> &pgdir->db_dma, node);
> if (!pgdir->db_page) {
> - kfree(pgdir->bitmap);
> + bitmap_free(pgdir->bitmap);
> kfree(pgdir);
> return NULL;
> }
> @@ -280,7 +277,7 @@ void mlx5_db_free(struct mlx5_core_dev *dev, struct mlx5_db *db)
> dma_free_coherent(&(dev->pdev->dev), PAGE_SIZE,
> db->u.pgdir->db_page, db->u.pgdir->db_dma);
> list_del(&db->u.pgdir->list);
> - kfree(db->u.pgdir->bitmap);
> + bitmap_free(db->u.pgdir->bitmap);
> kfree(db->u.pgdir);
> }
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c
> index 98359559c77e..a71d5b9c7ab2 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c
> @@ -108,8 +108,7 @@ int mlx5_mpfs_init(struct mlx5_core_dev *dev)
>
> mutex_init(&mpfs->lock);
> mpfs->size = l2table_size;
> - mpfs->bitmap = kcalloc(BITS_TO_LONGS(l2table_size),
> - sizeof(uintptr_t), GFP_KERNEL);
> + mpfs->bitmap = bitmap_zalloc(l2table_size, GFP_KERNEL);
> if (!mpfs->bitmap) {
> kfree(mpfs);
> return -ENOMEM;
> @@ -127,7 +126,7 @@ void mlx5_mpfs_cleanup(struct mlx5_core_dev *dev)
> return;
>
> WARN_ON(!hlist_empty(mpfs->hash));
> - kfree(mpfs->bitmap);
> + bitmap_free(mpfs->bitmap);
> kfree(mpfs);
> }
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/uar.c b/drivers/net/ethernet/mellanox/mlx5/core/uar.c
> index 8b97066dd1f1..94464723ff77 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/uar.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/uar.c
> @@ -90,8 +90,8 @@ static void up_rel_func(struct kref *kref)
> iounmap(up->map);
> if (mlx5_cmd_free_uar(up->mdev, up->index))
> mlx5_core_warn(up->mdev, "failed to free uar index %d\n", up->index);
> - kfree(up->reg_bitmap);
> - kfree(up->fp_bitmap);
> + bitmap_free(up->reg_bitmap);
> + bitmap_free(up->fp_bitmap);
> kfree(up);
> }
>
> @@ -110,11 +110,11 @@ static struct mlx5_uars_page *alloc_uars_page(struct mlx5_core_dev *mdev,
> return ERR_PTR(err);
>
> up->mdev = mdev;
> - up->reg_bitmap = kcalloc(BITS_TO_LONGS(bfregs), sizeof(unsigned long), GFP_KERNEL);
> + up->reg_bitmap = bitmap_zalloc(bfregs, GFP_KERNEL);
> if (!up->reg_bitmap)
> goto error1;
>
> - up->fp_bitmap = kcalloc(BITS_TO_LONGS(bfregs), sizeof(unsigned long), GFP_KERNEL);
> + up->fp_bitmap = bitmap_zalloc(bfregs, GFP_KERNEL);
> if (!up->fp_bitmap)
> goto error1;
>
> @@ -157,8 +157,8 @@ static struct mlx5_uars_page *alloc_uars_page(struct mlx5_core_dev *mdev,
> if (mlx5_cmd_free_uar(mdev, up->index))
> mlx5_core_warn(mdev, "failed to free uar index %d\n", up->index);
> error1:
> - kfree(up->fp_bitmap);
> - kfree(up->reg_bitmap);
> + bitmap_free(up->fp_bitmap);
> + bitmap_free(up->reg_bitmap);
> kfree(up);
> return ERR_PTR(err);
> }
> diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c
> index 9d9aa28684af..46baf3b44309 100644
> --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c
> +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c
> @@ -1188,8 +1188,7 @@ static int mlxsw_sp_fid_family_register(struct mlxsw_sp *mlxsw_sp,
>
> fid_family->mlxsw_sp = mlxsw_sp;
> INIT_LIST_HEAD(&fid_family->fids_list);
> - fid_family->fids_bitmap = kcalloc(BITS_TO_LONGS(nr_fids),
> - sizeof(unsigned long), GFP_KERNEL);
> + fid_family->fids_bitmap = bitmap_zalloc(nr_fids, GFP_KERNEL);
> if (!fid_family->fids_bitmap) {
> err = -ENOMEM;
> goto err_alloc_fids_bitmap;
> @@ -1206,7 +1205,7 @@ static int mlxsw_sp_fid_family_register(struct mlxsw_sp *mlxsw_sp,
> return 0;
>
> err_fid_flood_tables_init:
> - kfree(fid_family->fids_bitmap);
> + bitmap_free(fid_family->fids_bitmap);
> err_alloc_fids_bitmap:
> kfree(fid_family);
> return err;
> @@ -1217,7 +1216,7 @@ mlxsw_sp_fid_family_unregister(struct mlxsw_sp *mlxsw_sp,
> struct mlxsw_sp_fid_family *fid_family)
> {
> mlxsw_sp->fid_core->fid_family_arr[fid_family->type] = NULL;
> - kfree(fid_family->fids_bitmap);
> + bitmap_free(fid_family->fids_bitmap);
> WARN_ON_ONCE(!list_empty(&fid_family->fids_list));
> kfree(fid_family);
> }
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v1] mellanox: Switch to bitmap_zalloc()
2019-03-04 11:59 ` Jiri Pirko
@ 2019-03-04 18:15 ` David Miller
0 siblings, 0 replies; 5+ messages in thread
From: David Miller @ 2019-03-04 18:15 UTC (permalink / raw)
To: jiri; +Cc: andriy.shevchenko, netdev, saeedm, leon, jiri, idosch, linux-rdma
From: Jiri Pirko <jiri@resnulli.us>
Date: Mon, 4 Mar 2019 12:59:46 +0100
> Mon, Mar 04, 2019 at 09:57:00AM CET, andriy.shevchenko@linux.intel.com wrote:
>>Switch to bitmap_zalloc() to show clearly what we are allocating.
>>Besides that it returns pointer of bitmap type instead of opaque void *.
>>
>>Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>
> Acked-by: Jiri Pirko <jiri@mellanox.com>
>
> Hoever, net-next is closed now, so you might have to repost after it
> opens again.
I'll probably take this one...
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v1] mellanox: Switch to bitmap_zalloc()
2019-03-04 8:57 [PATCH v1] mellanox: Switch to bitmap_zalloc() Andy Shevchenko
2019-03-04 11:59 ` Jiri Pirko
2019-03-04 12:02 ` Tariq Toukan
@ 2019-03-04 18:19 ` David Miller
2 siblings, 0 replies; 5+ messages in thread
From: David Miller @ 2019-03-04 18:19 UTC (permalink / raw)
To: andriy.shevchenko; +Cc: netdev, saeedm, leon, jiri, idosch, linux-rdma
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: Mon, 4 Mar 2019 10:57:00 +0200
> Switch to bitmap_zalloc() to show clearly what we are allocating.
> Besides that it returns pointer of bitmap type instead of opaque void *.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Applied.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-03-04 18:19 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-04 8:57 [PATCH v1] mellanox: Switch to bitmap_zalloc() Andy Shevchenko
2019-03-04 11:59 ` Jiri Pirko
2019-03-04 18:15 ` David Miller
2019-03-04 12:02 ` Tariq Toukan
2019-03-04 18:19 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).