OSDN Git Service

RDMA/irdma: Use the bitmap API to allocate bitmaps
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Mon, 11 Jul 2022 19:21:39 +0000 (21:21 +0200)
committerLeon Romanovsky <leonro@nvidia.com>
Mon, 18 Jul 2022 10:23:58 +0000 (13:23 +0300)
Use bitmap_zalloc()/bitmap_free() instead of hand-writing them.

It is less verbose and it improves the semantic.

Link: https://lore.kernel.org/r/1f671b1af5881723ee265a0a12809c92950e58aa.1657567269.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Shiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/irdma/hw.c

index e041ed3..4f132c6 100644 (file)
@@ -1533,7 +1533,7 @@ static void irdma_del_init_mem(struct irdma_pci_f *rf)
                          rf->obj_mem.pa);
        rf->obj_mem.va = NULL;
        if (rf->rdma_ver != IRDMA_GEN_1) {
-               kfree(rf->allocated_ws_nodes);
+               bitmap_free(rf->allocated_ws_nodes);
                rf->allocated_ws_nodes = NULL;
        }
        kfree(rf->ceqlist);
@@ -1962,9 +1962,8 @@ u32 irdma_initialize_hw_rsrc(struct irdma_pci_f *rf)
        u32 ret;
 
        if (rf->rdma_ver != IRDMA_GEN_1) {
-               rf->allocated_ws_nodes =
-                       kcalloc(BITS_TO_LONGS(IRDMA_MAX_WS_NODES),
-                               sizeof(unsigned long), GFP_KERNEL);
+               rf->allocated_ws_nodes = bitmap_zalloc(IRDMA_MAX_WS_NODES,
+                                                      GFP_KERNEL);
                if (!rf->allocated_ws_nodes)
                        return -ENOMEM;
 
@@ -2013,7 +2012,7 @@ u32 irdma_initialize_hw_rsrc(struct irdma_pci_f *rf)
        return 0;
 
 mem_rsrc_kzalloc_fail:
-       kfree(rf->allocated_ws_nodes);
+       bitmap_free(rf->allocated_ws_nodes);
        rf->allocated_ws_nodes = NULL;
 
        return ret;