OSDN Git Service

RDMA/mlx4: Use bitmap_alloc() when applicable
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Thu, 25 Nov 2021 19:42:51 +0000 (20:42 +0100)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 29 Nov 2021 18:33:55 +0000 (14:33 -0400)
Use 'bitmap_alloc()' 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/4c93b4e02f5d784ddfd3efd4af9e673b9117d641.1637869328.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/mlx4/main.c

index ceca059..e2b9864 100644 (file)
@@ -2772,10 +2772,8 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
                if (err)
                        goto err_counter;
 
-               ibdev->ib_uc_qpns_bitmap =
-                       kmalloc_array(BITS_TO_LONGS(ibdev->steer_qpn_count),
-                                     sizeof(long),
-                                     GFP_KERNEL);
+               ibdev->ib_uc_qpns_bitmap = bitmap_alloc(ibdev->steer_qpn_count,
+                                                       GFP_KERNEL);
                if (!ibdev->ib_uc_qpns_bitmap)
                        goto err_steer_qp_release;
 
@@ -2863,7 +2861,7 @@ err_diag_counters:
        mlx4_ib_diag_cleanup(ibdev);
 
 err_steer_free_bitmap:
-       kfree(ibdev->ib_uc_qpns_bitmap);
+       bitmap_free(ibdev->ib_uc_qpns_bitmap);
 
 err_steer_qp_release:
        mlx4_qp_release_range(dev, ibdev->steer_qpn_base,
@@ -2976,7 +2974,7 @@ static void mlx4_ib_remove(struct mlx4_dev *dev, void *ibdev_ptr)
 
        mlx4_qp_release_range(dev, ibdev->steer_qpn_base,
                              ibdev->steer_qpn_count);
-       kfree(ibdev->ib_uc_qpns_bitmap);
+       bitmap_free(ibdev->ib_uc_qpns_bitmap);
 
        iounmap(ibdev->uar_map);
        for (p = 0; p < ibdev->num_ports; ++p)