RDMA/ocrdma: Use bitmap_zalloc() when applicable
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Thu, 25 Nov 2021 19:34:10 +0000 (20:34 +0100)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 29 Nov 2021 18:33:55 +0000 (14:33 -0400)
Use 'bitmap_zalloc()' to simplify code, improve the semantic and avoid
some open-coded arithmetic in allocator arguments.

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

Link: https://lore.kernel.org/r/b157f9e1586fb4d1083cb4058d7ac81b10bb86d7.1637868728.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/ocrdma/ocrdma_hw.c

index c51c3f40700ee021384cab8a711c532210a58b4b..265a581133dcd3a6155ba9f15ee1bcd484e802e1 100644 (file)
@@ -1506,7 +1506,6 @@ int ocrdma_mbx_dealloc_pd(struct ocrdma_dev *dev, struct ocrdma_pd *pd)
 static int ocrdma_mbx_alloc_pd_range(struct ocrdma_dev *dev)
 {
        int status = -ENOMEM;
-       size_t pd_bitmap_size;
        struct ocrdma_alloc_pd_range *cmd;
        struct ocrdma_alloc_pd_range_rsp *rsp;
 
@@ -1528,10 +1527,8 @@ static int ocrdma_mbx_alloc_pd_range(struct ocrdma_dev *dev)
                        dev->pd_mgr->pd_dpp_start = rsp->dpp_page_pdid &
                                        OCRDMA_ALLOC_PD_RNG_RSP_START_PDID_MASK;
                        dev->pd_mgr->max_dpp_pd = rsp->pd_count;
-                       pd_bitmap_size =
-                               BITS_TO_LONGS(rsp->pd_count) * sizeof(long);
-                       dev->pd_mgr->pd_dpp_bitmap = kzalloc(pd_bitmap_size,
-                                                            GFP_KERNEL);
+                       dev->pd_mgr->pd_dpp_bitmap = bitmap_zalloc(rsp->pd_count,
+                                                                  GFP_KERNEL);
                }
                kfree(cmd);
        }
@@ -1547,9 +1544,8 @@ static int ocrdma_mbx_alloc_pd_range(struct ocrdma_dev *dev)
                dev->pd_mgr->pd_norm_start = rsp->dpp_page_pdid &
                                        OCRDMA_ALLOC_PD_RNG_RSP_START_PDID_MASK;
                dev->pd_mgr->max_normal_pd = rsp->pd_count;
-               pd_bitmap_size = BITS_TO_LONGS(rsp->pd_count) * sizeof(long);
-               dev->pd_mgr->pd_norm_bitmap = kzalloc(pd_bitmap_size,
-                                                     GFP_KERNEL);
+               dev->pd_mgr->pd_norm_bitmap = bitmap_zalloc(rsp->pd_count,
+                                                           GFP_KERNEL);
        }
        kfree(cmd);
 
@@ -1611,8 +1607,8 @@ void ocrdma_alloc_pd_pool(struct ocrdma_dev *dev)
 static void ocrdma_free_pd_pool(struct ocrdma_dev *dev)
 {
        ocrdma_mbx_dealloc_pd_range(dev);
-       kfree(dev->pd_mgr->pd_norm_bitmap);
-       kfree(dev->pd_mgr->pd_dpp_bitmap);
+       bitmap_free(dev->pd_mgr->pd_norm_bitmap);
+       bitmap_free(dev->pd_mgr->pd_dpp_bitmap);
        kfree(dev->pd_mgr);
 }