mirror of
https://github.com/torvalds/linux
synced 2024-10-03 18:00:50 +00:00
mellanox: Switch to bitmap_zalloc()
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> Reviewed-by: Tariq Toukan <tariqt@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f7fb7c1a1c
commit
214fa1c437
|
@ -185,8 +185,7 @@ int mlx4_bitmap_init(struct mlx4_bitmap *bitmap, u32 num, u32 mask,
|
||||||
bitmap->avail = num - reserved_top - reserved_bot;
|
bitmap->avail = num - reserved_top - reserved_bot;
|
||||||
bitmap->effective_len = bitmap->avail;
|
bitmap->effective_len = bitmap->avail;
|
||||||
spin_lock_init(&bitmap->lock);
|
spin_lock_init(&bitmap->lock);
|
||||||
bitmap->table = kcalloc(BITS_TO_LONGS(bitmap->max), sizeof(long),
|
bitmap->table = bitmap_zalloc(bitmap->max, GFP_KERNEL);
|
||||||
GFP_KERNEL);
|
|
||||||
if (!bitmap->table)
|
if (!bitmap->table)
|
||||||
return -ENOMEM;
|
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)
|
void mlx4_bitmap_cleanup(struct mlx4_bitmap *bitmap)
|
||||||
{
|
{
|
||||||
kfree(bitmap->table);
|
bitmap_free(bitmap->table);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct mlx4_zone_allocator {
|
struct mlx4_zone_allocator {
|
||||||
|
|
|
@ -186,10 +186,7 @@ static struct mlx5_db_pgdir *mlx5_alloc_db_pgdir(struct mlx5_core_dev *dev,
|
||||||
if (!pgdir)
|
if (!pgdir)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
pgdir->bitmap = kcalloc(BITS_TO_LONGS(db_per_page),
|
pgdir->bitmap = bitmap_zalloc(db_per_page, GFP_KERNEL);
|
||||||
sizeof(unsigned long),
|
|
||||||
GFP_KERNEL);
|
|
||||||
|
|
||||||
if (!pgdir->bitmap) {
|
if (!pgdir->bitmap) {
|
||||||
kfree(pgdir);
|
kfree(pgdir);
|
||||||
return NULL;
|
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_page = mlx5_dma_zalloc_coherent_node(dev, PAGE_SIZE,
|
||||||
&pgdir->db_dma, node);
|
&pgdir->db_dma, node);
|
||||||
if (!pgdir->db_page) {
|
if (!pgdir->db_page) {
|
||||||
kfree(pgdir->bitmap);
|
bitmap_free(pgdir->bitmap);
|
||||||
kfree(pgdir);
|
kfree(pgdir);
|
||||||
return NULL;
|
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,
|
dma_free_coherent(&(dev->pdev->dev), PAGE_SIZE,
|
||||||
db->u.pgdir->db_page, db->u.pgdir->db_dma);
|
db->u.pgdir->db_page, db->u.pgdir->db_dma);
|
||||||
list_del(&db->u.pgdir->list);
|
list_del(&db->u.pgdir->list);
|
||||||
kfree(db->u.pgdir->bitmap);
|
bitmap_free(db->u.pgdir->bitmap);
|
||||||
kfree(db->u.pgdir);
|
kfree(db->u.pgdir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -108,8 +108,7 @@ int mlx5_mpfs_init(struct mlx5_core_dev *dev)
|
||||||
|
|
||||||
mutex_init(&mpfs->lock);
|
mutex_init(&mpfs->lock);
|
||||||
mpfs->size = l2table_size;
|
mpfs->size = l2table_size;
|
||||||
mpfs->bitmap = kcalloc(BITS_TO_LONGS(l2table_size),
|
mpfs->bitmap = bitmap_zalloc(l2table_size, GFP_KERNEL);
|
||||||
sizeof(uintptr_t), GFP_KERNEL);
|
|
||||||
if (!mpfs->bitmap) {
|
if (!mpfs->bitmap) {
|
||||||
kfree(mpfs);
|
kfree(mpfs);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -127,7 +126,7 @@ void mlx5_mpfs_cleanup(struct mlx5_core_dev *dev)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
WARN_ON(!hlist_empty(mpfs->hash));
|
WARN_ON(!hlist_empty(mpfs->hash));
|
||||||
kfree(mpfs->bitmap);
|
bitmap_free(mpfs->bitmap);
|
||||||
kfree(mpfs);
|
kfree(mpfs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -90,8 +90,8 @@ static void up_rel_func(struct kref *kref)
|
||||||
iounmap(up->map);
|
iounmap(up->map);
|
||||||
if (mlx5_cmd_free_uar(up->mdev, up->index))
|
if (mlx5_cmd_free_uar(up->mdev, up->index))
|
||||||
mlx5_core_warn(up->mdev, "failed to free uar index %d\n", up->index);
|
mlx5_core_warn(up->mdev, "failed to free uar index %d\n", up->index);
|
||||||
kfree(up->reg_bitmap);
|
bitmap_free(up->reg_bitmap);
|
||||||
kfree(up->fp_bitmap);
|
bitmap_free(up->fp_bitmap);
|
||||||
kfree(up);
|
kfree(up);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,11 +110,11 @@ static struct mlx5_uars_page *alloc_uars_page(struct mlx5_core_dev *mdev,
|
||||||
return ERR_PTR(err);
|
return ERR_PTR(err);
|
||||||
|
|
||||||
up->mdev = mdev;
|
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)
|
if (!up->reg_bitmap)
|
||||||
goto error1;
|
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)
|
if (!up->fp_bitmap)
|
||||||
goto error1;
|
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))
|
if (mlx5_cmd_free_uar(mdev, up->index))
|
||||||
mlx5_core_warn(mdev, "failed to free uar index %d\n", up->index);
|
mlx5_core_warn(mdev, "failed to free uar index %d\n", up->index);
|
||||||
error1:
|
error1:
|
||||||
kfree(up->fp_bitmap);
|
bitmap_free(up->fp_bitmap);
|
||||||
kfree(up->reg_bitmap);
|
bitmap_free(up->reg_bitmap);
|
||||||
kfree(up);
|
kfree(up);
|
||||||
return ERR_PTR(err);
|
return ERR_PTR(err);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1188,8 +1188,7 @@ static int mlxsw_sp_fid_family_register(struct mlxsw_sp *mlxsw_sp,
|
||||||
|
|
||||||
fid_family->mlxsw_sp = mlxsw_sp;
|
fid_family->mlxsw_sp = mlxsw_sp;
|
||||||
INIT_LIST_HEAD(&fid_family->fids_list);
|
INIT_LIST_HEAD(&fid_family->fids_list);
|
||||||
fid_family->fids_bitmap = kcalloc(BITS_TO_LONGS(nr_fids),
|
fid_family->fids_bitmap = bitmap_zalloc(nr_fids, GFP_KERNEL);
|
||||||
sizeof(unsigned long), GFP_KERNEL);
|
|
||||||
if (!fid_family->fids_bitmap) {
|
if (!fid_family->fids_bitmap) {
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
goto err_alloc_fids_bitmap;
|
goto err_alloc_fids_bitmap;
|
||||||
|
@ -1206,7 +1205,7 @@ static int mlxsw_sp_fid_family_register(struct mlxsw_sp *mlxsw_sp,
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_fid_flood_tables_init:
|
err_fid_flood_tables_init:
|
||||||
kfree(fid_family->fids_bitmap);
|
bitmap_free(fid_family->fids_bitmap);
|
||||||
err_alloc_fids_bitmap:
|
err_alloc_fids_bitmap:
|
||||||
kfree(fid_family);
|
kfree(fid_family);
|
||||||
return err;
|
return err;
|
||||||
|
@ -1217,7 +1216,7 @@ mlxsw_sp_fid_family_unregister(struct mlxsw_sp *mlxsw_sp,
|
||||||
struct mlxsw_sp_fid_family *fid_family)
|
struct mlxsw_sp_fid_family *fid_family)
|
||||||
{
|
{
|
||||||
mlxsw_sp->fid_core->fid_family_arr[fid_family->type] = NULL;
|
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));
|
WARN_ON_ONCE(!list_empty(&fid_family->fids_list));
|
||||||
kfree(fid_family);
|
kfree(fid_family);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue