RDMA/rxe: Use 'bitmap_zalloc()' when applicable
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 24 Oct 2021 16:43:56 +0000 (18:43 +0200)
committerJason Gunthorpe <jgg@nvidia.com>
Thu, 28 Oct 2021 11:58:27 +0000 (08:58 -0300)
'index.table' is a bitmap. So use 'bitmap_zalloc()' to simplify code,
improve the semantic and avoid some open-coded arithmetic in allocator
arguments.

Using 'bitmap_zalloc()' also allows the removal of a now useless
'bitmap_zero()'.

Also change the corresponding 'kfree()' into 'bitmap_free()' to keep
consistency.

Link: https://lore.kernel.org/r/4a3e11d45865678d570333d1962820eb13168848.1635093628.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/rxe/rxe_pool.c

index 271d4ac0e0aa82c9654f523f9ae75a3af27f98d5..ed2427369c2c6ef9880d57bf2462c0f6a3b080cb 100644 (file)
@@ -96,7 +96,6 @@ static inline const char *pool_name(struct rxe_pool *pool)
 static int rxe_pool_init_index(struct rxe_pool *pool, u32 max, u32 min)
 {
        int err = 0;
-       size_t size;
 
        if ((max - min + 1) < pool->max_elem) {
                pr_warn("not enough indices for max_elem\n");
@@ -107,15 +106,12 @@ static int rxe_pool_init_index(struct rxe_pool *pool, u32 max, u32 min)
        pool->index.max_index = max;
        pool->index.min_index = min;
 
-       size = BITS_TO_LONGS(max - min + 1) * sizeof(long);
-       pool->index.table = kmalloc(size, GFP_KERNEL);
+       pool->index.table = bitmap_zalloc(max - min + 1, GFP_KERNEL);
        if (!pool->index.table) {
                err = -ENOMEM;
                goto out;
        }
 
-       bitmap_zero(pool->index.table, max - min + 1);
-
 out:
        return err;
 }
@@ -167,7 +163,7 @@ void rxe_pool_cleanup(struct rxe_pool *pool)
                pr_warn("%s pool destroyed with unfree'd elem\n",
                        pool_name(pool));
 
-       kfree(pool->index.table);
+       bitmap_free(pool->index.table);
 }
 
 static u32 alloc_index(struct rxe_pool *pool)